Intorduction to software engineering,challenges,process models,ect.
-Outline
~Nature of software projects
~Engineering approaches
~Software process
~Characteristics of a good process
~Waterfall model for development
~Other model
~Project planning
Nature of software system:
-Ubiquitious – Variety of application business, engineering and scientific application.
-Simple to complex, internal to public, single function to enterprise wide, one location to distributed, batch or real time, informational to mission critical.
Challenger in large projects:
-Developing large complex software application is very challenging.
~Effort intensive
~High cost
~Long development time
~Ehanging needs of users
-High risk or failure, user acceptance, performance, maintainability.
-Quite different from one-time program where authors and users are the same.
Successful software system:
-Software development project have not always been successful.
-What is successful software application?
~Development completed
~It is useful
~It is usable
~It is used
~cost effective and maintainability applied
Reasons for failure:
-Schedule slippage
-Cost over-runs
-Does not solve user’s problems
-Poor quality of software
-Poor maintainability
Why this happen?
-Ad-hoc software development
~No planning (e.g. no milestones difined)
~Deliverables to users not identified
~Poor understanding of users requirements
~No control overview (“no run out of topic”)
~Technical or incompletence of developers
~Poor understanding of cost and effort by both developer and user
Engineering: other displines
-Large projects common and successfully done
~Building bridges or dams
~Power plants
~Aircrafts, missiles
-“Engineering” a solutions
~To design, develop(build, fabricate) an artifact that meets specifications efficiently, cost effectively and ensuring qualities.
~Using scientific principles
Engineering…
-Requires well-defined approach-repeatable, predictable.
-Large projects require managing the project itseft.
~Manage projects, people, money(cost), equipment, schedule.
~Scale makes big difference, compare building hut, 2-storey house, large condominium or hotel.
Large project…
-Involve different types of people .
~Large building: architects, civil engineering, electrical engineering, worker(carpenters.ect)
-Continuous supervisors for quality assurance
~On site supervisors(check cement or steel quality,etc)
-Many deliverable: architecture plan, model, structure diagrams, electrical cabling layout ect.
-Standards, regulations, convenctions need to be followed.
-Step, milestones define and reviews are carried out, progress is visible.
Software projects.
-Sotfware is different from other products.
~Cost of production concentrated in development
~Maintenance consists of making corrections and enhancing or adding features
-Progress in development is difficult to measure
Apply engineering approach.
-Hence, planning and control even more important in software development.
-Engineering approach:
~Attempt to estimate cost or effort
~Plan and schedule work
~Involve user in defining requirements
~Identify stages in development
~Define clear milestones
~Schedule reviews both for control and quality
~Define deliverables
~Plan extensive testing
Job of software developer is difficult
-Dealing with users
~Ill-defined requirements
~Concern with ease-of-use and response time
-Dealing with technical people
~Concerned with coding, databased, file structures, ect
-Dealing with management
~Concerned with return on their investment
~Cost-benefits analysis
~Shcedule
Software process.
-Process contain of activities or steps to be carried out in a particular order
-Software process deals with both technical and management issues
-Consist of different types of prosess
-Process for software development.
Produce software as result.
~Multiple such processes may exist
~A project follow a particular process
No comments:
Post a Comment