Professional Documents
Culture Documents
s/w Engineering:
• Means producing good quality, efficient, maintainable s/w on time, within budget.
• Main focus: On both quality of product and on process used to develop product.
• It’s study of and practice of engineering to build, design, develop and
Er. Shweta Rajput, Programmer, UIIT, HPU, Shimla
maintain software
• Program vs S/W:
• s/w project development is different from program development that we
develop as a student. We develop it, use it and throw it.
• But now want project-long term + testing + maintenance.
Program Documentation
Operating Procedures
Failure Intensity->
-> Time
S/w becomes reliable overtime instead of wearing out.
It may become obsolete, retired due to environmental changes,new requirements,new expectations.
• An Engg. approach consist of developing s/w which meets specifications efficiently, cost effectively and at the same time they
ensure quality.
• Engg. Approach means: well defined, managed, repeatable and predictable approach.
• Large projects will benefit by systematic approach.
• If we are successful once, then same approach, same methodology can also be used in another approach, in another project
and we will have very high probability of success.
• Quality, control,standards,planning and management are important in engineering approach.
• Customers/Stakeholders are not clear about their needs(happen when they have a very basic idea about their needs)
• Changing needs of users
• Conflicting requirements
• Changing technologies
• High risk of failure and user acceptance
• Performance
• Maintainability: maintaining agility and efficiency
• s/w projects may not always been successful.
• Lack of Resources
• Feasibility
• Undefined system boundaries
There might be no defined set of implementation requirements. Customer may go on to include several unrelated and unnecessary functions besides the
important ones, resulting in an extremely large implementation cost which may exceed the decided budget.
• Partitioning the system suitably to reduce complexity
The projects can sometimes be broken down into small modules or functionalities which are then handled by separate teams. Often, more complex and large
projects require more partitioning. It needs to be ensuredEr.that theRajput,
Shweta partitions are non-overlapping
Programmer, and independent of each other.
UIIT, HPU, Shimla
Reasons for s/w failures:
1. Schedule –slippage means s/w is not ready in time.
2. Cost over-runs(too costly to complete project, it may be abandoned).
3. Doesn’t solve user’s problem(s/w development completed but user does not find it useful. It’s failure).
4. Poor quality of s/w.
5. Poor Maintainability.
fix
• Developer simply build product that’s reworked as many times as necessary to satisfy client.
• Adhoc approach: not well defined.
• It’s 2 phase model:
Phase 1: is to write code.
Phase 2: is to fix it(fixing means error correction or addition of further functionality).
• Suitable for small programming exercises 100 or 200 LOC but not for large s/w.
• Code soon becomes unfixable and unenhanceable.
• Development cost: high as compared to cost of properly specified and carefully designed
product.
• Maintenance can be difficult without specification or design documents.
Er. Shweta Rajput, Programmer, UIIT, HPU, Shimla
2. Waterfall Model
5 phases: top-down approach
1. Requirements analysis and specification
2. Design
3. Implementation
4. unit testing, Integration and system testing
5. Operation and maintenance
Design
Implementation
(Coding)
unit testing,
Integration and
system testing
Operation and
maintenance
Er. Shweta Rajput, Programmer, UIIT, HPU, Shimla
Phase 1: Requirements analysis and specification
Aim:
1. to understand exact requirements of customer and to document them properly.
2. To develop SRS(software requirement specification) document, User involvement required
to design efficient end product.
3. SRS document: act as contract b/w developer and customer.
written in natural language, contains description of “What system will do without describing
how it will be done?”
4. Techniques: Brainstorming, questionnaire, GD, Survey, Interview etc.
• Software design is a process to transform user requirements into some suitable form, which helps the programmer in software coding and
implementation.
• software design may be as simple as a flow chart or text describing a planned sequence of events(pseudocode/algorithm).
• uses design methods like UML(Unified Modeling Language), ER and DFD.
• output of software design process is design documentation, pseudo codes, detailed logic diagrams, process diagrams, and detailed description of all
functional or non-functional requirements.
• Software design : process of defining software methods, functions, objects, and the overall structure and interaction of your code so that the resulting
functionality will satisfy your users requirements.
• sequence of steps that enables the designer to describe all aspects of the software for building.
• Here, overall s/w architecture is defined and high level and detailed design work is performed and this work is documented in form of SDD(s/w design
document).
• Software design is a creative activity in which you identify software components and their relationships, based on a customer’s requirements.
• if errors get unnoticed till later phases, it becomes more difficult to correct them.
Er. Shweta Rajput, Programmer, UIIT, HPU, Shimla
Phase 3: Implementation
• Here design is implemented.
• If SDD is complete, coding phase proceeds smoothly (as all info.
needed by s/w developer is contained in SDD).
Merits:
1. Useful when requirements are well understood.
2. Same type project: If an organization has experience in developing accounting system then building new
accounting system based on existing design could be easily managed with waterfall model.
Limitations:
3. It expects complete and accurate requirements early in the process which is unrealistic. It assume all
requirements can be clearly defined during analysis phase.
4. Linear model, real projects are rarely sequential.
5. Assume requirements are stable, don’t change with time.
6. Documentation-heavy as too much documentation is being produced as part of project.
7. Working s/w is not available until late in process, so delaying discovery of serious errors.
8. Not covering risk-assessment.
9. Not suitable for accommodating any change(phase sequence can’t be altered).
Quick Design
(Prototype)
Design
Implementation and
unit testing
OperationEr.and Maintenence
Shweta Rajput, Programmer, UIIT, HPU, Shimla
4. Iterative Enhancement Model
• Has same phases as waterfall model but with fewer restrictions.
• Phases occur in same order as in waterfall model but these may be conducted in several cycles.
• Useable product is released at end of each cycle, with each release providing additional
functionality.
• During 1st requirement analysis phase, customer and developer prepare SRS document, prioritize
requirements.
• Developer implement specified requirements in 1 or more cycles of design, implementation and
test based on defined priorities.
• Model does deliver an operational quality product at each release but 1 that satisfies only a subset
of customer’s requirements.
• Complete product is divided into releases and developer delivers product release by release.
• 1st release may be available within few weeks or months and customer is able to do some useful
work after 1st release.
Implementation
Integration and Operation
Design And
system testing (Install)
Unit testing
Release-2
In 1st quadrant, starting point, we define objectives, alternatives, what are constraints?
Then we evaluate those alternatives and clearly identify the risks.
Based on these risks in 3rd quadrant of cycle, work on implementation, build development and
then in 4th quadrant, we will plan subsequent cycles after customer feedback.
1. Planning: determination of objectives, alternatives and constraints.
2. Risk Analysis: Analyse alternatives and attempts to identify and resolve risks involved.
Risk Analysis includes identifying, estimating, and monitoring technical feasibility and management
risks, such as schedule slippage and cost overrun.
3. Development: product development and testing product.
4. Assessment: Customer evaluation.
• During 2nd phase, more refined prototype is built, requirements are documented and validated after refinements and
customer are involved in accessing new prototype.
Requirements Construction
User description Cut-Over
Planning
2. User description:
Joint team of developers and users are constituted to prepare, understand and review requirements.
Team may use automated tools to capture information from other users.
3. Construction:
It combines detailed design, coding and testing phase of waterfall model. Here we release product to
customer. It may use code generators, screen generators and other types of productivity tools.
4. Cut-Over:
It incorporates acceptance testing by users, installation of system and user training.
Er. Shweta Rajput, Programmer, UIIT, HPU, Shimla
Advantages:
1. User involvement may increase acceptability of product.
2. Development time of product may be reduced due to use of
powerful development tools. It may use CASE tools and framework
to increase productivity.
3. Quick initial views about product are possible due to delivery of
rapid prototype.
4. Highly specialised and skilled developers are expected.
1. Requirements
2. Development team
3. Users
4. Project type and associated risks.
2. Change requirements
Prototype, Spiral