Saturday, August 20, 2011

CSE 101 LECTURE 5

FOR POWER POINT AND RELEVANT SLIDE MAIL ME AT tanvirfalcon@gmail.com
Slide 2
Computer science:
Computer science is concerned with theory and fundamentals; Software engineering is concerned with the practicalities of developing and delivering useful software. Computer science theories are still insufficient to act as a complete underpinning for Software engineering (unlike e.g. physics and electrical engineering). Computer science theories are currently insufficient to act as a complete underpinning for software engineering, BUT it is a foundation for practical aspects of software engineering
Software engineering is an engineering discipline which is concerned with all aspects of software production. Software engineers should
adopt a systematic and organised approach to their work use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. Software engineering is part of this process concerned with developing the software infrastructure, control, applications and databases in the system. So this is a part of System engineering. System engineers are involved in system specification, architectural design Integration.
System Engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering. Systems engineering signifies both an approach and, more recently, a discipline in engineering. The aim of education in systems engineering is to simply formalize the approach and in doing so, identify new methods and research opportunities similar to the way it occurs in other fields of engineering. As an approach, systems engineering is holistic and interdisciplinary in flavor.
Slide - 8
Waterfall Model
The waterfall model is a popular version of the systems development life cycle model for software engineering. Often considered the classic approach to the systems development life cycle, the waterfall model describes a development method that is linear and sequential. Waterfall development has distinct goals for each phase of development. Imagine a waterfall on the cliff of a steep mountain. Once the water has flowed over the edge of the cliff and has begun its journey down the side of the mountain, it cannot turn back. It is the same with waterfall development. Once a phase of development is completed, the development proceeds to the next phase and there is no turning back.
System Feasibility: Defining a preferred concept for the software product, and determining its life-cycle feasibility and superiority to alternative concepts.
Requirements: A complete, verified specification of the required functions, interfaces, and performance for the software product. Product
Design: A complete verified specification of the overall hardware-software architecture, control structure, and data structure for the product, along with such other necessary components as draft user's manuals and test plans.
Detailed Design: A complete verified specification of the control structure, data structure, interface relations, sizing, key algorithms, and assumptions of each program component.
Coding: A complete, verified set of program components. Integration: A properly function software product composed of the software components.
Implementation: A fully functioning operational hardware-software system, including such objectives as program and data conversion, installation, and training.
Maintenance: A fully functioning update of the hardware-software system repeated for each update.
Phaseout: A clean transition of the functions performed by the product to its successors.
Advantages
If in the beginning of the project failures are detected, it takes less effort (and therefore time and money) for this error. In the waterfall model phases to be properly sealed first before proceeding to the next stage. It is believed that the phases are correct before proceeding to the next phase. In the waterfall model lay the emphasis on documentation. In the newer software development methodologies makes it less documentation. This means that when new people in the project, and people leave it is difficult to transfer knowledge. This disadvantage is not the traditional waterfall model. It is a straightforward method. The way of working ensures that there are specific phases. This tells you what stage it is. One can use this method of milestones. Milestones can be used to monitor the progress of the project to estimate. The waterfall model is well known. Many people have experienced, so there might be easy to work. When frequent portions of the software product to be delivered this gives the customer confidence, but also the software development team.
Disadvantages
There are some disadvantages of this way to develop software. Many software projects are dependent on external factors. The client is a very important external factor. Often the requirements over the course of the project change, because the client wants something different. It is a disadvantage that the waterfall model assumes that the requirements will not change during the project. When a requirement changes in the construction phase, a substantial number of phases made again. It is very difficult to time and cost estimate. The phases are very large, it is therefore very difficult to estimate how much each step cost. In a number of new methods are almost all aspects of a software development process included. One can think of planning techniques, project management methods and how the project should be organized. In many software projects, different people at different stages of the project. For example: the designers and builders. They all have a different view of the project as designers look at the project differently than the builders. Conversely, the builders often different from the design of the designers look than the designers themselves. Frequently, the design will be adjusted again. Here is the waterfall model is not made for that. Within the project the team members often specialized. One team member will be only the first phase involved the design, while the only builders in construction helping to build the project. This can lead to waste of different sources. The main source is the time. An example: the designers are working on perfecting the design. The builders are in principle already start building, but because they work with the waterfall model, they should wait until the first phase is complete. This is a typical example of wasted time. Testing is done only in one of the last phases of the project. In many other software development methods will be tested once a certain part and finished product is at last an integration test. Because so much emphasis on documentation, the waterfall model is not efficient for smaller projects. There’s too much effort to the project itself around in terms of documentation.
Slide – 10
Advantages:
Risk reduction mechanisms are in place
Supports iteration and reflects real-world practices
Systematic approach
Disadvantages:
Requires expertise in risk evaluation and reduction
Complex, relatively difficult to follow strictly
Applicable only to large systems
Applicability:
Internal development of large systems