02 Software Process (2).pdf

Document Details

FancierAestheticism

Uploaded by FancierAestheticism

Pusan National University

Tags

software process software engineering project management computer science

Full Transcript

Software Process Keunhyuk Yeom Dept. of Computer Engineering Pusan National University [email protected] Software Engineering as a Layered Technology l Quality Focus u Organizational Commitment to Quality l Process...

Software Process Keunhyuk Yeom Dept. of Computer Engineering Pusan National University [email protected] Software Engineering as a Layered Technology l Quality Focus u Organizational Commitment to Quality l Process u Foundation of Software Tools Engineering Methods l Methods Process u Technical “How-To”s l Tools Quality Focus Reliability, Performance, Availability, Usability, Maintainability, Portability, u (Semi-)Automated Support etc. for Process and Methods 2 Computer Engineering, Pusan National University Generic Phases – Framework Activities (1/3) Support Definition Development (Maintenance) l Definition Phase u Focuses on “What”. u Key Requirements are identified. u Major Tasks ªSystem or Information Engineering ªProject Management – planning & scheduling 3 ªRequirements Analysis Computer Engineering, Pusan National University Generic Phases (2/3) l Development Phase u Focus on “How”. u Major Tasks ªSoftware Design ªCode Generation ªSoftware Testing 4 Computer Engineering, Pusan National University Generic Phases (3/3) l Maintenance Phase u Focus on “Changes”. u Major Tasks ªCorrection to correct defects ªAdaptation to external environment and business rules ªEnhancement for additional functions 5 Computer Engineering, Pusan National University Umbrella Activities Umbrella Activities Definition Development Support l Major Tasks u Project Management - Tracking and Control u Formal Technical Reviews u Quality Assurance u Configuration Management u Product Preparation and Production, e.g., Documentation u Reusability Management u Measurement u Risk Management 6 Computer Engineering, Pusan National University Capability Maturity Model Integration (CMMI) l To determine an organization’s current state of process maturity u Developed by Software Engineering Institute (SEI), Carnegie Mellon University u To Establishe a yardstick against which it is possible to judge the maturity of an organizational software process l A framework that describes the key elements of an effective Software Process è Key Process Area(KPA) l To describe an evolutionary improvement path from an ad hoc, immature process to a mature, disciplined process. l To cover practices for planning, engineering, and 7 managing software development and maintenance Computer Engineering, Pusan National University Levels of Software Process Maturity (CMMI) Continuously improving Process Optimizing Predictable Process Managed Standard, consistent Process Defined Disciplined Repeatable Process Initial 8 Computer Engineering, Pusan National University CMMI l Level 1. Initial u Few Processes are defined, and success depends on individual effort. l Level 2. Repeatable u Basic project management processes are defined. u Repeat earlier successes on projects with similar applications l Level 3. Defined u Both management and engineering activities are defined u All projects use a documented and approved processes. 9 Computer Engineering, Pusan National University CMMI (cont.) l Level 4. Managed u Detailed measures of process and product quality are collected. u Both process and products are quantitatively measured and controlled. l Level 5. Optimizing u Continuous process improvement is enabled by quantitative feedback ªfrom the process and ªfrom testing innovative ideas and technologies. 10 Computer Engineering, Pusan National University Key Process Areas for Each Maturity Level of CMMI Management Organizational Engineering Technology Change Management Optimizing Process Change Defect Prevention Management Quantitative Process Software Quality Managed Management Management Integrated Software Organization Software Product Management Process Focus Engineering Defined Intergroup Organization Peer Reviews Coordination Process Definition Training Program Requirements Management Software Project Planning Software Project Tracking & Oversight Repeatable Software Subcontract Management Software Quality Assurance Software Configuration Management Initial Ad Hoc Processes 11 Computer Engineering, Pusan National University Others l Software Process Improvement and Capability Determination (SPICE) l Etc. 12 Computer Engineering, Pusan National University Software Process l The set of activities, methods, and practices which guide people in the production of software u The quality of a software product is largely governed by the quality of the process used to create, repair, and improve it. u An effective process must consider the required tasks, the tools and methods, and the software developers’ skills, training, and motivation. u The process of producing and evolving software products can be defined, managed, and measured, and progressively improved. 13 Computer Engineering, Pusan National University Software Process (cont.) l Uses of a process model u Facilitate human understanding and communication u Support process improvement and management u Framework for integration of techniques and procedures 14 Computer Engineering, Pusan National University Software Life Cycle l A Large-grained Model of Software Process l The period of time that starts when a software product is conceived and ends when the product is no longer available for use. l A time-ordered activities, which if performed in a manner that satisfies the ordering relationship, will produce the desired product. Development Use Modification 15 Computer Engineering, Pusan National University Software Process Models l A Process Model is chosen u based on the nature of the project, application, methods, tools, and deliverables. l A Process Model defines an ‘order’ to development activities. 16 Computer Engineering, Pusan National University Software Process Models (cont.) l A Variety of Process Models u Build and Fix (code and fix) u Linear Sequential Model (Waterfall Model) u Prototyping Model u RAD Model u Evolutionary Model ªIncremental Model ªSpiral Model ªWINWIN Spiral Model u Component-Based Development u Formal Methods Model u Fourth Generation Techniques 17 Computer Engineering, Pusan National University Build-and-Fix Model Build first version Modify until client is satisfied operations mode 18 Computer Engineering, Pusan National University Build and Fix Model (cont.) l Mainly a single-person task. l Constructed without specification. l Unsatisfactory for products of reasonable size. l Not suitable for today's environments where u Developed for people with no computer background. u More stringent reliability req. u Group activity. 19 Computer Engineering, Pusan National University Linear Sequential Model l Sequential approach to Software Development l Called ‘Classic Life Cycle’, ‘Waterfall Model’ System/Information engineering Analysis Design Code Test 20 Computer Engineering, Pusan National University Waterfall Model Feasibility Study Requirements Analysis & Specification Design & Specification Coding & Module Testing Integration & System Testing Delivery Maintenance 21 Computer Engineering, Pusan National University Waterfall Model (cont.) l Popularized in 1970's. l Standard industrial practices. l Document-oriented l The output of one phase constitutes the input to next. l Exists many variants. 22 Computer Engineering, Pusan National University Typical Waterfall Model Documents Activity Output documents Requirements analysis Feasibility study, Outline requirements Requirements definition Requirements document System specification Functional specification, Acceptance test plan Draft user manual Architectural design Architectural specification, System test plan Interface design Interface specification, Integration test plan Detailed design Design specification, Unit test plan Coding Program code Unit testing Unit test report Module testing Module test report Integration testing Integration test report, Final user manual System testing System test report Acceptance testing Final system plus documentation 23 Computer Engineering, Pusan National University Software Development Process: Overview Requirement Analysis and Implementation Analysis Design Internal view External view Programming Modeling Programming Modeling Language: UML Language: C++, Java Programming CASE Tools Tools 24 Computer Engineering, Pusan National University Feasibility Study l Evaluates the costs and benefits of the proposed solution. l Analyze the problem, at least at the global level. l Simulation of the future development process. l Documents produced: u A definition of the problem. u Alternative solutions and their expected benefits. u Required resources, costs, and delivery date in 25 each. Computer Engineering, Pusan National University Requirements Analysis and Specification l Identify the qualities required for the application. l Functional and nonfunctional l Must state what to do, not how to do. l Used by both customer and designers l Separate functional requirements into three views: u A model of data: Entity relationship diagrams u A model of function: Data flow diagrams u A model of control: Control flow diagrams, Petri nets. 26 Computer Engineering, Pusan National University Design and Specification l Propose a solution to the problem. l Can be divided into: High-level and low-level l High-level(preliminary, architectural) u Decompose the system into modules. u Specify the relationships among modules l Low-level(detailed) u Design each module. l Design aspects u Data u Control u External interface u User interface 27 Computer Engineering, Pusan National University Coding and Module Testing l Ideally transformation of design into code. l Test each module in the system 28 Computer Engineering, Pusan National University Integration and System Testing l Assemble the application from the set of components l Integration testing focuses on the interactions among modules l System testing focuses on the evaluation of functional and non-functional qualities of the system 29 Computer Engineering, Pusan National University Delivery and Maintenance l Types of maintenance u Corrective: 20 % u Adaptive: 20 % u Perfective: 60% l Requirements analysis is a serious source of problems. l Many errors are not removed until after the system is delivered. l It is difficult to incorporate changes in the product. 30 Computer Engineering, Pusan National University Other Activities l Documentation u Document-driven l Verification u Monitor the quality of the application. u Perform at the end of each phase. u Methods ªReview ªWalk-through ªInspection l Management u Tailoring the process. u Defining policies. 31 u Dealing all resources affecting the process. Computer Engineering, Pusan National University Evaluation of the Linear Sequential (Waterfall) Model (1/3) l Linear u Development may proceed linearly from analysis to coding. l Rigid u The results of each phase are frozen before proceeding to the next. l Monolithic u All planning is oriented toward a single delivery date. 32 Computer Engineering, Pusan National University Evaluation of the Linear Sequential (Waterfall) Model (2/3) l Contribution u Enforced disciplined, planned and manageable approach. u Implementing the product should be postponed until after the objectives of doing so are well understood. 33 Computer Engineering, Pusan National University Evaluation of the Linear Sequential (Waterfall) Model (3/3) l Problems u Difficult to estimate resources accurately. u Verification of req. spec. by customer is not effective. u The user often does not know the exact requirements. u Often difficult for the customer to state all requirements explicitly. u Does not stress the need for anticipating changes. u Leads to a somewhat bureaucratic style of work. u Real projects rarely follow the sequential flow. ª Changes can cause confusion as the team proceeds. u The customer must have patience. ª A working version of the program will be available late. ª Late-found errors can be disastrous. u Developers are often delayed unnecessarily. 34 Computer Engineering, Pusan National University Prototyping Model (1/4) l Effective Situations u Requirements are hard to formulate, i.e., unclear or fuzzy. u Feasibility of a project may be questionable. l Basic Notation u Begins with Requirements Gathering u A ‘Quick Design’ is followed. u A prototype is made, i.e., a working model of the system. u A prototype can serve as ‘the first system’, and may be discarded. ªThe actual software is engineered with an eye toward quality and maintainability. 35 Computer Engineering, Pusan National University Prototyping Model (2/4) Listen to Build/revise customer Mock-up Customer Test-drives Mock-up 36 Computer Engineering, Pusan National University Prototyping Model (3/4) l Advantages u Being Real and Tangible ªSatisfying client’s “I will know it when I see it” manner ªThe client can look at and try out ªA basis for concrete comparisons and specific requirements u Extracting correct and precise requirements, and hence making sure the client gets the system wanted. u Creating a common reference point for both the client and developers. u Cultivating the client participation and commitment to the project. 37 Computer Engineering, Pusan National University Prototyping Model (4/4) l Drawbacks u Creating a False Belief ªThe prototype is the final product. ªDelivery of the final product is almost immediate. u Overselling the Prototype ªMay lead the client to expect more from the final system. u More Difficult Management and Control ªSpecific phases, milestones and deliverables are lacking ªAssessing the actual progress is harder 38 Computer Engineering, Pusan National University RAD(Rapid Application Development) Model (1/3) l A high-speed adaptation of the Linear Sequential Process model in which rapid development is achieved. u To create a fully functional system within very short time periods, e.g., 60 to 90 days. l Effective Situation u If the business application can be modularized in a way that each major function to be completed in less than 3 months. u Not all types of applications are appropriate for RAD. ª If the system cannot be properly modularized, ª If high performance is required, and performance is not tuned separately, ª When technical risks are high, 39 Computer Engineering, Pusan National University RAD Model (2/3) l Each major function is addressed by a separate RAD team. u Uses reusable program components ªCornerstone of Object Technology Team #2 Team #3 Business Team #1 Business modeling Data Business modeling modeling Data Process modeling modeling modeling Application Data Process generation modeling Testing & modeling turnover Application Process generation modeling Testing & turnover Application generation Testing & turnover 40 60-90Days Computer Engineering, Pusan National University RAD Model (3/3) l Drawbacks u For large, but scaleable project, RAD requires sufficient human resources to create the right number of RAD teams. u RAD requires a high level of commitment to rapid-fire activities. 41 Computer Engineering, Pusan National University Evolutionary Process Model l Iterative Process u Enables software engineers to develop increasingly more complete versions of software. l Incremental Model u Combines linear sequential model with prototyping u Each linear sequence produces a deliverable ‘increment’ of the software. ªOften bases on Functional Completeness ªThe first increment is often a core product u Useful when staffing is unavailable for a complete implementation. 42 Computer Engineering, Pusan National University Evolutionary Process Model (cont.) System/Information engineering Delivery of Analysis Design Code Test 1st Increment Increment 1 Delivery of Analysis Design Code Test 2nd Increment Increment 2 Delivery of Analysis Design Code Test 3rd Increment Increment 3 Delivery of Analysis Design Code Test 4th Increment Increment 4 Calendar time 43 Computer Engineering, Pusan National University Incremental Model (1/4) Implement and test Implement, first build Integrate, and test successive builds until product is complete. Operation mode 44 Computer Engineering, Pusan National University Incremental Model (2/4) Phases Core Workflows Inception Elaboration Construction Transition Requirements An iteration in the elaboration phase Analysis Design Implementation Test P r e lim in a ry ite r. ite r. ite r. ite r. ite r. ite r. it e r. Ite ra tio n (s ) #1 #2 #n #n+1 #n+2 #m #m +1 45 Computer It eEngineering, r a tio n s Pusan National University Incremental Model (3/4) l Stepwise development l Must retain the discipline introduced by the waterfall model at each build. l May be extended to all stages of the life cycle. 46 Computer Engineering, Pusan National University Incremental Model (4/4) l Benefits u Provide the user with time to adjust to the new product. u Easy to accommodate changes. u Phased delivery does not require a large capital outlay. l Problems u Each additional build has to be incorporated into the existing structure. u May require more careful design. (could be a benefit.) u Can easily degenerate into the build&fix 47 model. Computer Engineering, Pusan National University Spiral Model (1/3) l Software is developed in a series of incremental releases. l The early release might be a proper model or a prototype. l Framework Activities u Customer Communication u Planning u Risk Analysis u Engineering u Construction and Release u Customer Evaluation 48 Computer Engineering, Pusan National University Spiral Model (2/3) 49 Computer Engineering, Pusan National University Spiral Model (3/3) l Spiral Model adapted for Entire Life-Cycle u Apply throughout the life of software u Each cube on the project entry point represents the start of a new project. l Advantages u Risk Reduction u Realistic Approach for large scale systems l Drawbacks u Hard to control u Hard to convince customers 50 Computer Engineering, Pusan National University WINWIN Spiral Model l WINWIN Spiral Model by Boehm Identify stakeholders’ win conditions Reconcile win conditions Identify next-level Establish next-level objectives, stakeholders constraints and alternatives Review and comment Evaluate process and product alternatives and Resolve risks Validate product and process definitions Define next level of product and process, including partitions 51 Computer Engineering, Pusan National University Component-Based Development (1/2) l Incorporates the spiral model. l Composes the application from prepackaged software components, e.g., objects and classes. l Utilizes object technology. l Classes created in the past are stored in a class library. l High Reusability u 70% Reduction in Development Time u 84% Reduction in Project Cost u 26.2 Productivity Index, compared to 16.9, industry norm 52 Computer Engineering, Pusan National University Component-Based Development (2/2) 53 Computer Engineering, Pusan National University Formal Methods Model (1/2) l Writes mathematical specification of software. l Formal methods are used to u specify, u develop and u verify the software by applying a rigorous, mathematical notation. l e.g. A department has at least as many The budget of a project must not employees as projects exceed the budget of the controlling department. context Department inv: project.size() >= employee.size() context Project inv: budget

Use Quizgecko on...
Browser
Browser