Introduction to Software Engineering ppt

45 350 0
Introduction to Software Engineering ppt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Introduction to Software Engineering Outline • • • • • • • • Nature of software projects Engineering approaches Software Process A process step Characteristics of a good process Waterfall model for development Other models Project planning Software systems • Ubiquitous, used in variety of applications - Business, engineering, scientific applications • Simple to complex, internal to public, single function to enterprise-wide, one location to distributed, batch or real time, informational to mission-critical,… Challenge in large projects • Developing large/complex software application is very challenging - Effort intensive - High cost - Long development time - Changing needs for users - High risk of failure, user acceptance, performance, maintainability • Quite different from one-time programs where author and user are same! Successful software system • Software development projects have not always been successful • When we consider a software application successful? - Development completed - It is useful - It is usable, and - It is used • Cost-effectiveness, maintainability implied Reasons for failure • • • • • Schedule Slippage Cost over-runs Does not solve user’s problem Poor quality of software Poor maintainability Reasons for failure… • Ad hoc software development results in such problems - No planning of development work (e.g no milestones defined) - Deliverables to user not identified - Poor understanding of user requirements - No control or review - Technical incompetence of developers - Poor understanding of cost and effort by both developer and user Engineering: other disciplines • Large projects common and successfully - Building bridges, dams - Power plants - Aircrafts, missiles,… • “engineering” a solution: - To design, develop (build, fabricate) an artifact that meets specifications efficiently, costeffectively and ensuring quality - Using scientific principles Engineering • Requires well-defined approach: repeatable, predictable • Large projects requires managing the project itself - Manage people, money (cost), equipment, schedule - Scale makes big difference: compare building a hut, 2-storeyed house, or 50-storeyed apartment building • Quality extremely important: relates to failures, efficiency, usability,… - People willing to pay for quality! Large Projects • Involve different types of people - Large building: architect, civil engineer, electrical engineer, workers (masons, carpenters), • Continuous supervision for quality assurance - On site supervisors (check cement/steel quality, ensuring proper mix of sand & cement,…) Shortcomings of Waterfall model • Requirements may not be clearly known, especially for applications not having existing (manual) counterpart - Railway reservation: manual system existed, so SRS can be defined - Knowledge management for central bank -new Shortcomings • Requirements change with time during project life cycle itself - Users may find solutions of little use - Better to develop in parts in smaller increments; this is common for packages, system software • Considered documentation-heavy: so much documentation may not be required for all types of projects Prototyping Model • When customer or developer is not sure - Of requirements (inputs, outputs) - Of algorithms, efficiency, human-machine interaction • A throwaway prototype built from currently known user needs • Working or even ‘paper’ prototype Prototyping… • Quick design focuses on aspects visible to user; features clearly understood need not be implemented • Prototype is tuned to satisfy customer needs - Many interactions may be required to incorporate changes and new requirements • Final product follows usual define-design build-test life cycle Prototyping Requirements gathering ‘Quick’ design Build prototype Evaluate & refine Engineer product Limitations of Prototyping • Customer may want prototype itself! • Developer may continue with implementation choices made during prototyping - may not give required quality, performance… • Good tools need to be acquired for quick development • May increase project cost Interactive Development • Useful for product development where developers define scope, features to serve many customers • Early version with limited feature important to establish market and get customer feedback • Initial version may follow any method • A list of features for future versions maintained Spiral Model • Activities are organized in a spiral having many cycles • Four quadrants in each cycle Determine objectives, alternatives, constraints Plan next step Evaluate alternatives, Identify and handle risks Develop the software Spiral Model… • Prototyping, simulations, benchmarking may be done to resolve uncertainties/risks • Development step depends on remaining risks; e.g., - Do prototype for user interface risks - Use basic waterfall model when user interface and performance issues are understood but only development risk remains • Risk driven: allows us mix of specificationoriented, prototype-oriented, simulation based or any other approach Project Management Process • Runs in parallel to development process • Project planning, monitoring and control are the basic goals • Project plan indicates how project will be executed successfully - Without plan, there is no management - Without measurement, not much planning possible - Plan allows progress to be measured - Plan produced before development begins and constantly updated Project Planning • Prepare cost/effort estimation - Based on project complexity, scope, productivity levels, other historical data - Many models available • Select development process, define milestones and prepare schedule - Know how effort is distributed over phases from historical data • Decide project staffing • Make quality control plans: define reviews, inspections, testing strategies to detect/remove defects Project Monitoring and Control • Plan defines various activities: many ways to represent: Gantt chart, time bar chart, PERT/CPM project activity network - Show activities, expected durations, resources allocated - Critical paths can be identified Project monitoring • Each development step gives information for tracking progress for identifying delays, bottlenecks, etc - Allows corrective action; add more resources, reduce scope, renegotiate cost/schedule, etc Summary • What is engineering, and importance of applying engineering approach in software development • Types of software processes • Stepwise process definition • Waterfall, prototype, iterative, spiral models • Project management Process • Project Planning References Lecture Series on Software Engineering by Prof.N.L Sarda, Prof Umesh Bellur,Prof.R.K.Joshi and Prof.Shashi Kelkar, Department of Computer Science & Engineering ,IIT Bombay P Jalote A Concise Introduction to Software Engineering Springer, 2008 ... even ‘paper’ prototype Prototyping… • Quick design focuses on aspects visible to user; features clearly understood need not be implemented • Prototype is tuned to satisfy customer needs - Many... • Ubiquitous, used in variety of applications - Business, engineering, scientific applications • Simple to complex, internal to public, single function to enterprise-wide, one location to distributed,... Prototyping • Customer may want prototype itself! • Developer may continue with implementation choices made during prototyping - may not give required quality, performance… • Good tools need to

Ngày đăng: 28/06/2014, 07:20

Từ khóa liên quan

Mục lục

  • Introduction to Software Engineering

  • Outline

  • Software systems

  • Challenge in large projects

  • Successful software system

  • Reasons for failure

  • Reasons for failure…

  • Engineering: other disciplines

  • Engineering

  • Large Projects

  • Large projects…

  • Software projects

  • Apply Engineering Approach

  • Job of Software developer is difficult

  • Slide 15

  • Software Process

  • Process types

  • Process types…

  • Multiple processes

  • Step in a process

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan