Tuesday, July 14, 2009

Intorduction to software engineering

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