Showing posts with label software engineering. Show all posts
Showing posts with label software engineering. Show all posts

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