Lesson 1-Software Engineering For PRINTING

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 13

SOFTWARE ENGINEERING

Prepared by: Jerian R. Peren

WHAT IS SOFTWARE?
Computer programs and associated documentation Software products may be developed for a particular customer or may be developed for a general market Software products may be

Generic - developed to be sold to a range of different customers Custom - developed for a single customer according to their specification

WHAT IS SOFTWARE ENGINEERING?


Software engineering is an engineering discipline which is concerned with all aspects of software production Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available

WHAT IS SOFTWARE ENGINEERING?

In what order should these tasks be carried out to complete the project in the shortest possible time? It is difficult to come up with a correct solution (or, solutions) without writing down possible options and considering them one by one (unless one comes with a built-in computer chip). It is hard to say why this problem is complicated, because no individual step seems to be difficult. After all, the most complicated operation involves adding small integer numbers. Software engineering is full of problems like this: all individual steps are easy, yet the overall problem is overwhelming.

WHAT IS SOFTWARE ENGINEERING

Software engineering is often confused with programming. The role of software engineering is to capture the customers business needs and specify the blueprints for the system so that programmers can implement it (Figure 1-2).

Software engineering relies on our ability to think about space and time, processes, and interactions between processes and structures.

SOFTWARE ENGINEERING CONCEPT

To understand a complex thing, one needs to develop ideas about relationships among the parts inside. By dividing a complicated job into simpler tasks and describing how they interact, we simplify the problem and make it easier to understand and solve. This is why imagination is critical for software engineering (as it is for any other problem-solving activity!).

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING CONCEPT

In a way, software development parallels the problem-solving strategies in artificial intelligence (AI): represent the goal; represent the current state; and, minimize the differences by means-ends analysis.

WHY SOFTWARE ENGINEERING IS DIFFICULT


If you are a civil engineer building bridges then all you need to know is about bridges. Unlike this, if you are developing software you need to know about software domain (because that is what you are building) and you need to know about the problem domain (because that is what you are building a solution for). Some problems require extensive periods of dedicated research (years, decades, or even longer). Obviously, we cannot consider such problem research as part of software engineering. We will assume that the problem is either solved (a theoretical solution exists), or it can be solved in a relatively short amount of time by an informed non-expert.

SOFTWARE ENGINEERING LIFECYCLE


Any product development can be expected to proceed as an organized process that usually includes the following phases:
Planning/Specification Design Implementation Evaluation

SOFTWARE ENGINEERING LIFECYCLE

SOFTWARE ENGINEERING LIFECYCLE


So is with software development. The common software development phases are as follows: 1. Specification / Requirements - Documenting the usage scenarios and deriving the static domain model 2. Design - Assigning responsibilities to objects and specifying the dynamics of their interactions under diffrent usage scenarios 3. Implementation - Encoding the design in a programming language 4. Testing - Individual classes/components (unit testing) and entire system (integration testing) 5. Operation and Maintenance - Running the system; Fixing bugs and adding new features The lifecycle usually comprises many other activities, some of which precede the above ones, such as marketing survey to determine the market need for the planned product. This text is restricted to engineering activities, usually undertaken by the software developer.

SOFTWARE CHARACTERISTICS
Software development is unlike any other product development in the following aspects

Software is intangible and hard to visualize Software is probably the most complex artifact Software is probably the most flexible artifact

You might also like