33
UNIT 2 MODULE 1 Software and System Software and System Development Development Topic : Software Development Compiled by: Careene McCallum-Rodney

UNIT 2 MODULE 1 Software and System Development Topic : Software Development Compiled by: Careene McCallum-Rodney

Embed Size (px)

Citation preview

UNIT 2 MODULE 1

Software and System Software and System DevelopmentDevelopment

Topic : Software Development

Compiled by:Careene McCallum-Rodney

INTRODUCTION TO SOFTWARE DEVELOPMENT______________________________________________________

Every field of study has its own name for the systematic method used to solve problems by designing suitable solutions. In the world of software, the procedure is called the software development procedure.

Software Development ensures that the software produced meet the specification required.

This aspect of the syllabus is really focusing on software engineering. Software Engineering is concerned with the theories, methods and tools which are needed to develop the software for computers.

The need for a structured software

development process

SUB-TOPIC

Specific ObjectiveStudents should be able to explain the reasons for a

structured approach to software development process

The need for a structured software

development processIncreased Increased

Dependence of many Dependence of many organizations on their organizations on their

computer systemcomputer system

Crises in Crises in previous previous developmentsdevelopments

Requirements for Requirements for standard interfacesstandard interfaces

Need for tighter Need for tighter control and control and

management of management of processprocess

Increasing cost of software development

Dissatisfaction of users and management with

the quality and suitability of the

softwareIncreasing length and

complexity of the software

ExitHome

1. Increased Dependence of many organizations

on their computer systemIn all industrialized countries, and increasingly in developing

countries, computer systems are economically critical. More and

more products incorporate computers in some form. Educational,

administrative and health care systems are dependent on computer

systems. The software in these systems represents a large and

increasing proportion of the total system costs. The effective

functioning of modern economic and political systems therefore

depends on the ability to produce software in a cost effective way.

NEXT PREVIOUS MAIN MENU

2. Crises in previous developments

A "large" software system is a system that contains more than 50,000

lines of high-level language code. It’s those large systems that bring

the software crisis to light. With large software development

projects, the work is done in teams consisting of project managers,

requirements analysts, software engineers, documentation experts,

and programmers. With so many professionals collaborating in an

organized manner on a project, what’s the problem? Why is it that the

team produces fewer than 10 lines of code per day over the average

lifetime of the project? And why are sixty errors found per every

thousand lines of code? Why is one of every three large projects

scrapped before ever being completed? And why is only 1 in 8

finished software projects considered "successful?"

NEXT PREVIOUS MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

Conflicting requirements have always hindered the software development process. For example, while users demand a large number of features, customers generally want to minimize the amount they must pay for the software and the time required for its development.

The causes of the software crisis were linked to the overall complexity of the software process and the relative immaturity of software engineering as a profession.

A structured software development process is mindful of the Software Crisis, and there are methods being implemented by this process to deal with the crisis.

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

Software Crisis can be categorized as follows:

MAIN MENU

Increasing cost of software development

Dissatisfaction of users and management with the quality and suitability of the

software

Increasing length and complexity of the software

Assignment 1

2. Crises in previous developments

NEXT PREVIOUS

INCREASING COST OF SOFTWARE DEVELOPMENTThe cost of owning and maintaining software in the 1980’s was twice as expensive as developing the software. During the 1990’s, the cost of ownership and maintenance increased by 30% over the 1980’s.

Not only has software development become more costly (especially for bespoke products), but additionally, many times the projects run over-budget.

Software can be difficult to maintain. Software maintenance accounts for the majority of all software budgets. Many software programs consist of errors that were not realized in the implementation process. When maintaining existing software programs it is threatened by poor design (in terms of coding and documentation) as well as inadequate resources. When this occurs, the development process can be very costly and time consuming.

Changes during design, implementation and installation have a severe impact on cost

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

DISSATISFACTION OF USERS AND MANAGEMENT WITH THE QUALITY AND SUITABILITY OF THE SOFTWARE

Early experience in building large software systems showed that existing

methods of software development were not good enough. Techniques

applicable to small systems could not be scaled up.

Major projects were sometimes years late.

They cost more than were originally predicted, were unreliable, difficult to

maintain and performed poorly.

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

DISSATISFACTION OF USERS AND MANAGEMENT WITH THE QUALITY AND SUITABILITY OF THE SOFTWARE

Three quarters of all large software products delivered to the customer are

failures that are either not used at all, or do not meet the customer’s real

needs or requirements. This is so because software development is often

undertaken with only a vague notion of the customer’s requirements.

Many software efforts have failed because developers lack the essential

formal and detailed description on data, functionality, design constraint and

validation criteria, which can be accessed through frequent communication

between developers and customers.

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

INCREASING LENGTH AND COMPLEXITY OF THE SOFTWARE

Projects were unmanageable and code difficult to maintain.

As long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem.

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

INCREASING LENGTH AND COMPLEXITY OF THE SOFTWARE

Another problem that still exists in software development is the time taken to develop software. Software developers regularly underestimate how long it takes to design, write and test their software. Mostly, this problem still exists because developers are trying to produce massive software products with old tools, outdated methods and inadequate management techniques. Sometimes, the assumptions made is that, if the software is behind schedule, more programmers can be added and thus hasten the process. Adding people to a late software project makes it later. Another contributing factor to the time factor is that project requirements continually changes. The impact of change will vary according to when it was introduced.

MAIN MENU

2. Crises in previous developments

NEXT PREVIOUS

ASSIGNMENT ONE (Due date: to be discussed)

Write a 800 word essay on Software Crisis. The essay must include:

1. Explanation of at least 2 major software crisis.

2. Recommended solution or minimization of the above crisis.

3. Use the MLA research style (you need to personally research this method) of writing throughout the essay and also for the bibliography.

4. Must use at least 3 books and 2 websites. Special marks are allotted to students who use computer journals or magazines and personally interviewed a software developer or expert.

MAIN MENU

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

When applied to computer software, User Interface Design is also known as Human-Computer Interaction or HCI. While people often think of Interface Design in terms of computers, it also refers to many products where the user interacts with controls or displays. Military aircraft, vehicles, airports, audio equipment, and computer peripherals, are a few products that extensively apply User Interface Design.

The more intuitive the user interface the easier it is to use, and the easier it is to use and the less expensive to use it.  The better the user interface the easier it is to train people to use it, reducing your training costs.  The better your user interface the less help people will need to use it, reducing your support costs.  The better your user interface the more your users will like to use it, increasing their satisfaction with the work that you have done.

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

A fundamental reality of application development is that the user interface is the system to the users. What users want is for developers to build applications that meet their needs and that are easy to use. Too many developers think that they are artistic geniuses – they do not bother to follow user interface design standards or invest the effort to make their applications usable, instead they mistakenly believe that the important thing is to make the code clever or to use a really interesting color scheme. A good user interface allows people who understand the problem domain to work with the application without having to read the manuals or receive training.

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

The user interface is often the yardstick by which that system is judged. An interface which is difficult to use will, at best, result in a high level of user error. At worst it will cause the software system to be discarded, irrespective of its functionality. If information is presented in a confusing and misleading way, the user may misunderstand the meaning of an item of information. They may initiate a sequence of actions which corrupt data or cause catastrophic system failure.

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

These principles govern the structure of user interface:

The structure principle. Your design should organize the user interface purposefully, in meaningful and useful ways based on clear, consistent models that are apparent and recognizable to users, putting related things together and separating unrelated things, differentiating dissimilar things and making similar things resemble one another. The structure principle is concerned with your overall user interface architecture.

The simplicity principle. Your design should make simple, common tasks simple to do, communicating clearly and simply in the user’s own language, and providing good shortcuts that are meaningfully related to longer procedures.

The visibility principle. Your design should keep all needed options and materials for a given task visible without distracting the user with extraneous or redundant information. Good designs don’t overwhelm users with too many alternatives or confuse them with unneeded information.

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

The feedback principle. Your design should keep users informed of actions or interpretations, changes of state or condition, and errors or exceptions that are relevant and of interest to the user through clear, concise, and unambiguous language familiar to users.

The tolerance principle. Your design should be flexible and tolerant, reducing the cost of mistakes and misuse by allowing undoing and redoing, while also preventing errors wherever possible by tolerating varied inputs and sequences and by interpreting all reasonable actions reasonable.

The reuse principle. Your design should reuse internal and external components and behaviors, maintaining consistency with purpose rather than merely arbitrary consistency, thus reducing the need for users to rethink and remember.

 

3. Requirements for standard interfaces

NEXT PREVIOUS MAIN MENU

ASSIGNMENT TWO – Due Date : To be discussed

This assignment is to be done in groups of two.

Requirements: Seek out a customized or generic software which implements user

interfaces. Write an essay on the strong and weak areas of the interfaces, based on facts. Pictures of the interfaces are to be included. Additionally each group will get a total of 7 minutes to present their analysis of the interface.

Additional marks will be allotted to proof of additional research, presentation, grammar and consistent and correct use of the APA format.

Oral presentation is expected to be organized and properly presented. 

4. Need for tighter Control and Management of Process

NEXT PREVIOUS

What is the Software Process?

This is the set of activities and associated results which produce a software

product. These activities are mainly carried out by software engineers.

There are 4 fundamental process activities which are common to all

software processes. These activities are:

1. Software specification

The functionality of the software and constraints on its operation

must be defined.

2. Software Development

The software to meet the specification must be produced.

MAIN MENU

4. Need for tighter Control and Management of Process

NEXT PREVIOUS

3. Software validation

The software must be authenticated to ensure that it does what the

customer wants.

4. Software evolution

The software must develop to meet changing customer needs.

There are no such thing as a ‘right’ or ‘wrong’ process. Different software

processes decompose these activities in different ways. The timing of

the activities varies as does the results of each activity.

MAIN MENU

4. Need for tighter Control and Management of Process

NEXT PREVIOUS

WHY IS THERE A NEED FOR THE ABOVE?

• Different organizations use different processes to produce the same

type of product. Different types of product may be produced by an

organization using different processes. However, some processes are

more suitable than others for some types of application. If the wrong

process is used, this will probably reduce the quality of or the

usefulness of the software product to be developed.

•Because there are a variety of different process models used, it is

impossible to produce reliable figures for cost distribution across these

activities. However, modifying software usually takes up more

than 60% of total software costs. This percentage is

MAIN MENU

4. Need for tighter Control and Management of Process

NEXT PREVIOUS

increasing as more and more software is produced and has to be

maintained.

• Software processes are complex and involves a very large number of

activities. These activities need to be managed appropriately

and efficiently.

Consider the :

1. process characteristics

2. need for process visibility

3. need for risk management

MAIN MENU

PROCESS CHARACTERISTICS

NEXT PREVIOUS

Understandability To what extent is the process explicitly defined and how easy is it to understand to process definition?

Visibility Do the process activities culminate in clear results so that the progress of the process is externally visible?

Supportability To what extent can the process activities be supported by CASE tools?

Acceptability Is the defined process acceptable to and usable by the engineers responsible for producing the software product?

Reliability Is the process designed in such a way that process errors are avoided or trapped before they result in product errors?

Robustness Can the process continue in spite of unexpected problems?

Maintainability Can the process evolve to reflect changing organizational requirements or identified process improvements?

Rapidity How fast can the process of delivering a system form a given specification be completed?

MAIN MENU

NEXT PREVIOUS

NEED FOR PROCESS VISIBILITY

Because of the intangible nature of software systems, software process

managers need documents, reports and reviews to keep track of what

is going on. Each activity must end with the production of some

document. These document make the software process visible.

However, regular document production has some drawbacks:

1. Management needs regular deliverables to assess project progress

The timing of management requirements may not correspond with the

time needed to complete an activity. Extra documents may have to be

produced adding to the cost of the process.

MAIN MENU

NEXT PREVIOUS

2. The need to approve document constrains process iterations

The cost of going back and adapting a complete deliverable are high.

If the problems are discovered during the process, inelegant solutions

are sometimes adopted to avoid the need to change ‘accepted’ project

deliverables.

3. The time required to review and approve a document is significant

There is rarely a smooth transition from one phase of the process to

the next. Development may continue before the previous phase

document has been completed.

NEED FOR PROCESS VISIBILITY

MAIN MENU

NEXT PREVIOUS

Risk is a concept that is difficult to define precisely. Informally, it is simply

something which can go wrong. For example, if the intention is to use

a new programming language, a risk is that the available compilers are

unreliable or do not produce sufficiently efficient object code.

Risks are a consequence of inadequate information. They are resolved

by initiating some actions which discover information that reduces

uncertainty. In the above example, the risk would be resolved by a

market survey to find out which compilers are available and how good

are they. If no suitable system was discovered, the decision to use a

new language must be changed.

NEED FOR RISK MANAGEMENT

MAIN MENU

NEXT PREVIOUS

Risk Management is a method for dealing with project risks, by identifying

and handling them appropriately. This method is on-going and is used

throughout the life of the project.

BASIC APPROACH

• Analysis of project, so that you can identify risks involved.

• For each risk identified, the following steps are taken:

Impact and Probability Analysis (the nature of the risk),

Avoidance Plan ( How to minimize risks), and

Contingency Plan (What to do if it occurs).

NEED FOR RISK MANAGEMENT

MAIN MENU

Risk Management

R isk M anagem ent

R isk A ssessm ent

R isk C ontro l

R isk Identifica tion

R isk A na lysis

R isk E xposure

R isk R eduction

C ontingency P lann ing

R isk M on ito ring

C ontinuous R eassessm ent

R isk P rio ritiza tion

NEXT PREVIOUS

NEED FOR RISK MANAGEMENT

(Cost, Expectation and Technical)

(What we will lose if the risk occur)

(properly investigating the risk, also looking at the likelihood of occurrence and its impact)

MAIN MENU

NEXT PREVIOUS

NEED FOR RISK MANAGEMENT

RISK REDUCTION

• Avoiding Risk– Modifying project

requirements• Transferring the Risk

– By allocation to other systems

– Buying Insurance to cover financial loses

• Mitigating the Risk– Pre-Event Actions to:

• Reduce Likelihood of Occurrence and/or

• Minimize Impact

CONTINGENCY PLANNING

• Some risks cannot be reduced

• Plan for risk occurrence• Why?

– Reduces “Crisis” atmosphere

– Reduces chance of mistakes

– Reduces time to correct

MAIN MENU

NEXT PREVIOUS

NEED FOR RISK MANAGEMENTMONITORING AND CONTINUOUS REASSESSMENT

• Periodic Review of Risk Status– Changes in Probabilities or Impacts– Changes in Avoidance/Mitigation/Contingency Plans

• Periodic Review of Project to Identify New Risks

• Implementation of Risk Avoidance or Mitigation Plans

• Keep Management and Customers Informed!!!– Frequent Risk Reviews

MAIN MENU

NEXT PREVIOUS

ASSIGNMENT 3 Due Date: To be discussed.

Arrange yourself in groups of two. At most two groups will present on one of the following Life Cycle Models:

1. Waterfall Approach2. Evolutionary Development including rapid prototyping.3. Fountain Approach4. Formal Transformation5. Re-use oriented approach

Use powerpoint presentation to assist in conveying information. Each group has a maximum of 10 minutes to present.

Evidence of research (at least 2 books and 2 websites) is important. Hence, a bibliography slide is to be included in the presentation.

MAIN MENU