Sie sind auf Seite 1von 5

Chapter No 2: Software Processes hours: 10

26M

Comparison to Other CS disciplines  Software Engineering focuses on the development of software generically other disciplines, such as databases, operating systems, compilers, etc., focus on particular software products.

 It is also different in that it has a strong focus on process and is an attempt to turn software development into an engineering discipline
o

Software Engineering is the systematic approach to the development, operation, maintenance, and retirement of software systems

Thought Experiment  you are given a description of a software system and you estimate, based on prior experience, that such a system would be approximately 10,000 lines of Java code  Assuming that the problem domain does not require specialized expertise, how long would it take you to build a 10,000 line program? Discussion  Most students would answer 1 to 3 months  Assume a student finishes the project in 2 months that would result in a productivity of 5,000 lines of code (LOC) per month.  We can point out that across industries, professional software development teams average somewhere on the order of 100 LOC per month to 1000 LOC per month  Assuming the latter rate, a professional software development team would require 6 months to build a system that meets the same requirements that our hypothetical student did in two months

GOPI B

Answer  Two different systems are being built: a student system and an industrialstrength software system

 What are the differences? Student Software Developer is the User


y y y

Industrial-Strength Software Client is the User


y y y

Bugs are tolerable UI not important No documentation

Bugs are not tolerated UI is important Lots of documentation

Software not in critical use Reliability, important No investment Does not care about portability robustness not

Supports important business functions Reliability, robustness very important Heavy investment Portability allows a company to market a product on multiple platforms

1.1 Quality, Cost, and Schedule  Quality, Cost, and Schedule are the main forces that drive a (industrial strength) software project. Cost: The software should be produced at reasonable cost. The cost of developing software is generally measured in terms of person-months of effort spent in development. And productivity is frequently measured in the industry in terms of LOC (or KLOC) per person-month. Schedule: The software should be produced in a reasonable time, needs to be developed faster, and within the specified time.

GOPI B

Quality:

The software should be of good quality

Software Quality Attributes Quality Attribute

Definition

Functionality

The system fulfills its requirements. The capability to provide functions which meet stated and implied needs when the software is used. The system provides consistent performance. The capability to provide failurefree service. The ease at which users can acquire skill with the system. The capability to be understood, learned, and used. The system provides performance relative to its resources.

Reliability

Usability

Efficiency

Maintainability The system can be modified to make corrections, improvements/ adaptations Portability The system can be adapted to other platforms

Reliability is often ranked as the most important quality attribute. If a system is unreliable, users will stop using it.

SE challenges.  Software engineers encounter several challenges


o o o o

Scale Quality and Productivity Consistency and Repeatability Change

GOPI B

1.2 Scale and Change: Scale: Any software project involves the use of engineering and project management. In small projects, informal methods for development and management can be used. For large projects a proper method for engineering the system has to be employed and the project has to be tightly managed to make sure that cost, schedule, and quality are under control. Large scale is a key characteristic of the problem domain and the solution approaches should employ tools and techniques that have the ability to build large software systems. Quality and Productivity Engineering disciplines are driven by the practical parameters of cost, schedule, and quality  A solution that takes enormous resources and many years to complete may not be acceptable  A poor quality solution may not be much use, even if its low costs or completed quickly
o o

As productivity goes up, the cost per person-month goes down. In addition, as productivity goes up, the amount of time it takes to finish a project goes down

 Consistency of performance is an important factor for any organization; it allows an organization to make predictions and estimates for future projects Change:  A big problem in software development is that "things change" all the time: requirements change or new requirements are added.  These changes occur rapidly, challenging our ability to deal with the changes.
y

Software is under constant pressure to change, because clients tend to think that all software change requests are equal.

GOPI B

GOPI B

Das könnte Ihnen auch gefallen