Вы находитесь на странице: 1из 52

Bachelor of Science in Information Technology

1/17/13

WHAT IS SOFTWARE ENGINEERING?


As a software engineers, we use our knowledge of computers and computing to help solve problems. Often the problem with which we are dealing is related to a computer or an existing computer system. But sometimes the difficulties underlying the problem have nothing to do with computers. Therefore, it is essential that we first understand the nature of 1/17/13 the problem. We must solve the

Solving Problems
Most problems are large and sometimes tricky to handle, especially if they present something new that has never been solve before. So we must begin investigating a problem by analyzing it, by breaking it into pieces that we could understand and try to deal with.
1/17/13

Synthesis
Putting together of a large structure from small building blocks. As with analysis, the composition of the individual solutions may be a challenging as the process of finding solutions.
1/17/13

1/17/13

Methods in solving a problem


To help us solve the problem, we employ a variety of methods, tools, procedures, and paradigms. A method or technique is a formal procedure for producing some result.

1/17/13

Tool
A tool is an instrument or automated system for accomplishing something in a better way. A tool that makes us more accurate, more efficient or more productive or that enhances the quality of the resulting products.
1/17/13

Tools

1/17/13

Procedure

Procedure is like a recipe: a combination of tools and techniques that, in concert, produce a particular product. The test plans will describe the test procedure that will tell us what tools will be used and data sets, and whether our software meets the 1/17/13 requirements.

1/17/13

Paradigm
Paradigm is like a cooking style; it represents a particular approach or philosophy for building software. We distinguish paradigm like object oriented development from procedural ones.
1/17/13

Software Engineers
Software engineers use tools, techniques, procedures and paradigms to enhance the quality of their software products Their aim is to use efficient and productive approaches to
1/17/13

Where Does the Software Engineer Fits In?

To understand how a software engineer fits into the computer science world let us look to another discipline.
1/17/13

Chemistry
The study of chemistry and its use to solve the problems.

1/17/13

Chemist
The chemist investigate chemicals: their structure, their interactions, and the theory behind their behavior.

1/17/13

Chemical Engineers
Chemical Engineers apply the results of the chemists studies to a variety of problems.

1/17/13

We can view computing in a similar light. We can concentrate on the computers and programming languages or we can view them as a tools to be used in designing and implementing a solution to a problem. Software engineer focuses on the computer as a problem solving 1/17/13 tool

The relationship between computer science and software engineering


Computer Science

Customer

Theorie s

Compute r Functions Software Engineeri ng


Tools and Techniques to Solve Problem

Problem

1/17/13

HOW SUCCESSFUL HAVE WE BEEN?


Writing software is an art as well as a science, and it is important for you as a student of Information Technology to understand why. Computer scientist and software engineering researchers study computer mechanisms and theorize about how to make them more productive or efficient.
1/17/13

1/17/13

WHAT IS A GOOD SOFTWARE


Just as manufacturers look for ways to ensure the quality of the products they produce, so too much software engineers find methods to ensure that their products are of acceptable quality and utility. Thus good software engineering must always include a strategy for producing quality 1/17/13 software.

Software's

1/17/13

1/17/13

HUMAN ERROR
CAN LEAD TO

FAULT
CAN LEAD TO

FAILUR E
1/17/13

THE QUALITY OF THE PRODUCT


The collection of features and characteristics of a product that contribute to its ability to meet given requirements. Early work in controlling product quality was on creating standards for producing acceptable products.
1/17/13

1/17/13

THE QUALITY OF THE PROCESS


There are many activates that affect the ultimate product quality; if any of the activities go wrong, the product quality may suffer. For this reason, many software engineers feel that the quality of the development maintenance process is as important as product quality.
1/17/13

One of the advantages of modeling the process is that we can examine it and look for ways to improve it Question such as:

Where and when are we likely to find a particular kind of fault? How can we find faults earlier in the development process? How can we build a fault tolerance so that we minimize the likelihood that a fault will become a failure? 1/17/13

How can we design secure, high quality system? Are there alternative activities that can make our process more effective or efficient at ensuring quality?

These questions can be applied to the whole or to a sub process, such as configuration 1/17/13

QUALITY IN THE CONTEXT OF BUSINESS ENVIRONMENT


When we focus of quality assessment is on product and processes, we usually measures quality with mathematical expressions involving faults, failures, and timing. Rarely is the scope broadened to include a business perspective, where quality is viewed in terms of the product and services being provided by a business which software is fixed.
1/17/13

We measure quality of software by the obvious metrics:

HOW WE MEASURE THE QUALITY

Up versus Down time Maintenance cost

1/17/13

TECHNICAL VALUE
The knowledge and abilities needed to accomplish mathematical, engineering, scientific or computer-related duties, as well as other specific tasks. Those with technical skills are often referred to as "technicians" in their chosen 1/17/13 field.

BUSINESS VALUE
In management, business value is an informal term that includes all forms of value that determine the health and wellbeing of the firm in the long run. Business value expands concept of value of the firm beyond economic value.
1/17/13

TECHNICAL VALUE 1/17/13

BUSINESS VALUE

ROI
Return of investment:

Training Schedule Risk Quality Productivity Process Customers Cost

1/17/13

WHO DOES SOFTWARE ENGINEERING


The number of people working on software development depends on the project size and degree of difficulty.

The Customers The Developer

1/17/13

The Customers The customer is company, organization, person who is paying for software system to develop. the or the be

1/17/13

The developer
The developer is the company, organization, or person who is building the software system for the customer.

1/17/13

The user
The user is the person or people who will actually use them: the ones who sit at the terminal or submit the data or read the output.

1/17/13

1/17/13

A SYSTEM APPROACH
The projects we develop do not exist in a vacuum , Often the hardware and software we put together must Interact with users. A system is a collection objects and activities.
1/17/13

of

1/17/13

THE ELEMENTS OF A SYSTEM


Activities and Objects. Relationships and System Boundary

1/17/13

Activities and Objects.

Activities is something happens in a system.

that

Object or entities. Usually these objects are related to each other in some way. For instance, the objects can be arranged in a table or matrix. Often objects are 1/17/13 grouped as records.

Relationship and system Boundary

1/17/13

Once the entities and activities are defined, we match the entities with their activities. The relationships among entities and activities are clearly and carefully

Entity In general, an entity (pronounced N-tih-tee ) is an existing or real thing. The word root is from the Latin, ens , or being, and makes a distinction between a thing's existence and its 1/17/13 qualities

System A collection of things a set of entities, a set of activities, a description of the relationships among entities and activities definition of the boundary.
1/17/13

Example of a System

1/17/13

Interrelated Systems
The concept of boundary is important. Because very few systems are independent of the other systems. However, once the boundary of a system is described, it is easier for us to see what is within and without and what cross the 1/17/13 boundary.

1/17/13

1/17/13

AN ENGINEERING APPROACH
Once we understand the systems nature, we are ready to begin its construction. At this point, The engineering part of the software engineering becomes relevant and complements. The art of producing a system involves the craft of the software production.
1/17/13

Оценить