Professional Documents
Culture Documents
SoftwareEngg Lecture 03new
SoftwareEngg Lecture 03new
SoftwareEngg Lecture 03new
BS (Computer Science)
Lecture-03(a)
Date: 13-10-2012
Phase - behavior of the system Development Phase - How to obtain the desired behavior Maintenance - change the behavior Corrective - fix uncovered defect Adaptive - Platform change Enhancement - Perfective, additional functionality Preventive - re-engineering, make system more maintainable
31.03.2014
Software Engineering
1. 2.
08.10.2011
A common process framework is established by defining a small number of framework activities that are applicable to all software projects, regardless of their size or complexity.
08.10.2011 Dr. S. N Ahsan, IQRA-University 4
5.
08.10.2011
Umbrella Activities
1. 2. 3. 4.
5.
6. 7.
8.
Software Project Tracking and Control Risk Management Software Quality Assurance Technical Reviews Measurements Software Configuration Management Reusability Management Work Product Preparation and Production
08.10.2011 Dr. S. N Ahsan, IQRA-University 6
Process Flow
1. 2. 3. 4.
Linear Process Flow Iterative Process Flow Evolutionary Process Flow Parallel Process Flow
08.10.2011
2. 3.
4.
Concurrent Models Component Based Development The Formal Methods Model Aspect Oriented Software Development
PRESCRIPTIVE-MODEL
to bring order and structure to the software development process. To get away from the chaos of most development processes. But there is a strange balance between order and chaos. Absolute order means absence of variability. Absolute chaos makes coordination and coherence impossible. Thus, a balance is needed.
08.10.2011
10
Waterfall Model
Requirements
Design
Implementation
Testing
Maintenance
08.10.2011
11
Waterfall Strengths
Easy to understand, easy to use Provides structure to inexperienced staff Milestones are well understood Sets requirements stability Good for management control (plan, staff, track) Works well when quality is more important than cost or schedule
08.10.2011
12
Waterfall Deficiencies
All requirements must be known upfront The following phase should not start until the previous phase has finished. Deliverables created for each phase are considered frozen inhibits flexibility Can give a false impression of progress Does not reflect problem-solving nature of software development iterations of phases Integration is one big bang at the end Little opportunity for customer to preview the system (until it may be too late)
08.10.2011 Dr. S. N Ahsan, IQRA-University 13
Requirements are very well known Product definition is stable Technology is understood New version of an existing product Porting an existing product to a new platform.
08.10.2011
14
A variant of the Waterfall that emphasizes the verification and validation of the product. Testing of the product is planned in parallel with a corresponding phase of development
08.10.2011
15
V-Shaped Strengths
Emphasize planning for verification and validation of the product in early stages of product development Each deliverable must be testable Project management can track progress by milestones Easy to use
08.10.2011
16
V-Shaped Weaknesses
Does not easily handle concurrent events Does not handle iterations or phases Does not easily handle dynamic changes in requirements Does not contain risk analysis activities
08.10.2011
17
08.10.2011
18
08.10.2011
19
Develop high-risk or major functions first Each release delivers an operational product Customer can respond to each build Uses divide and conquer breakdown of tasks Lowers initial delivery cost Initial product delivery is faster Customers get important functionality early Risk of changing requirements is reduced
08.10.2011
20
08.10.2011
21
Risk, funding, schedule, program complexity, or need for early realization of benefits. Most of the requirements are known up-front but are expected to evolve over time A need to get basic functionality to the market early On projects which have lengthy development schedules On a project with new technology
08.10.2011
22
RAD Model
Rapid Application Development an incremental model that emphasizes a short development cycle. Uses component-based construction method. Does not work for all projects particularly large projects or when project is high risk.
08.10.2011
23
RAD Strengths
Reduced cycle time and improved productivity with fewer people means lower costs Time-box approach mitigates cost and schedule risk Customer involved throughout the complete cycle minimizes risk of not achieving customer satisfaction and business needs Focus moves from documentation to code (WYSIWYG). Uses modeling concepts to capture information about business, data, and processes.
08.10.2011
24
RAD Weaknesses
Accelerated development process must give quick responses to the user Risk of never achieving closure Hard to use with legacy systems Requires a system that can be modularized Developers and customers must be committed to rapid-fire activities in an abbreviated time frame.
08.10.2011
25
Reasonably well-known requirements User involved throughout the life cycle Project can be time-boxed Functionality delivered in increments High performance not required Low technical risks System can be modularized
08.10.2011
26
08.10.2011
27
08.10.2011
28
Testing
Testing Maintenance
08.10.2011
29
Prototyping Strengths
Customers can see the system requirements as they are being gathered Developers learn from customers A more accurate end product Unexpected requirements accommodated Allows for flexible design and development Steady, visible signs of progress produced Interaction with the prototype stimulates awareness of additional needed functionality
08.10.2011
30
Prototyping Weaknesses
Tendency to abandon structured program development for code-and-fix development Bad reputation for quick-and-dirty methods Overall maintainability may be overlooked The customer may want the prototype delivered. Process may continue forever (scope creep)
08.10.2011 Dr. S. N Ahsan, IQRA-University 31
Requirements are unstable or have to be clarified As the requirements clarification stage of a waterfall model Develop user interfaces Short-lived demonstrations New, original development With the analysis and design portions of objectoriented development.
08.10.2011 Dr. S. N Ahsan, IQRA-University 32
08.10.2011
33
08.10.2011
34
Code Unit test Design V&V Integr ation test Acceptance test Develop, verify Service next-level product
08.10.2011 Dr. S. N Ahsan, IQRA-University 35
Requirement validation
Detailed design
Provides early indication of insurmountable risks, without much cost Users see the system early because of rapid prototyping tools Critical high-risk functions are developed first The design does not have to be perfect Users can be closely tied to all lifecycle steps Early and frequent feedback from users Cumulative costs assessed frequently
08.10.2011 Dr. S. N Ahsan, IQRA-University 36
Time spent for evaluating risks too large for small or low-risk projects Time spent planning, resetting objectives, doing risk analysis and prototyping may be excessive The model is complex Risk assessment expertise is required Spiral may continue indefinitely Developers must be reassigned during nondevelopment phase activities May be hard to define objective, verifiable milestones that indicate readiness to proceed through the next iteration
08.10.2011 Dr. S. N Ahsan, IQRA-University 37
When creation of a prototype is appropriate When costs and risk evaluation is important For medium to high-risk projects Long-term project commitment unwise because of potential changes to economic priorities Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration)
08.10.2011
38
Under development
Done
39
41
08.10.2011
42
08.10.2011
43
Aspect-Oriented SW Development
Nearly all SW has localized features, functions and information content. User or customer concerns or needs must be included. These can be high-level concerns like security or lower-level such as marketing business rules or systemic such as memory management.
08.10.2011
44
Crosscutting Concerns
AOP addresses behaviors that span many, often unrelated, modules. Core Concerns: Primary core functionality. Central functionality of a module. Crosscutting Concerns: System wide concerns that span multiple modules. Cuts across the typical division of responsibility. OOP creates a coupling between core and crosscutting concerns. AOP aims to modularize crosscutting concerns.
08.10.2011 Dr. S. N Ahsan, IQRA-University 45
Aspects
In AOP crosscutting concerns are implemented in aspects instead of fusing them into core modules. Aspects are an additional unit of modularity. Aspects can be reused. By reducing code tangling it makes it easier to understand what the core functionality of a module is. An aspect weaver takes the aspects and the core modules and composes the final system.
08.10.2011
46
47
A use-case driven, architecture-centric, iterative and incremental software process closely aligned with the Unified Modeling Language (UML)
48
UP Phases
UP Phases
Incept ion Elaborat ion Const ruct ion Transit ion Product ion
49
50
1. Early mitigation of high risks 2. Early visible progress. 3. Early feedback, user engagement, and adaptation, leading to a system that more nearly meets the needs of the various stakeholders. 4. Managed complexity no compounding of complexity by postponing the implementation phase. 5. Learning within an iteration.
Timeboxing
Management of a UP project:
Iterations are timeboxed or fixed in length. Iteration lengths of between two to six weeks are recommended. Each iteration period has its own development plan.
Inc.
Elaboration
Construction
Trans.
iteration
Release
The end of each iteration is a minor release
Final release
Agile Development
Agile Software Engineering combines a philosophy and a set of development guidelines. The philosophy encourages customer satisfaction and early incremental delivery of software, Small highly motivated project teams Informal method Minimal Software Engineering work products Development simplicity
54
31.03.2014
55
31.03.2014
56
Extreme Programming
Developers work in pairs Coding is the key activity throughout a software project Test cases and expected results devised before software design After testing of increment, test cases added to a consolidated set of test cases Developers work in pairs Test cases and expected results devised before software design After testing of increment, test cases added to a consolidated set of test cases
57
XP Practices (1-12)
Planning game 2. Small releases 3. Metaphor 4. Simple design 5. Testing 6. Refactoring 7. Pair-programming 8. Collective ownership 9. Continuous integration 10. 40-hour week 11. On-site customer 12. Coding standards
1.
31.03.2014
58