se methods 2003

Uploaded from authorPOINTLite
Views:
 
Category: Entertainment
     
 

Presentation Description

No description available.

Comments

Presentation Transcript

Slide1: 

Ivica Crnkovic Mälardalen University Department of Computer Science and Engineering ivica.crnkovic@mdh.se http://www.idt.mdh.se/~icc

Contents: 

Contents What is Software Engineering? Software Engineering and Science Methods of Software Engineering Software Engineering Research Example – Software architecture

What is Software Engineering?: 

What is Software Engineering? Software engineering is an engineering discipline which is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after gone into use. Ian Sommerville, Software Engineering We need further explanation of: Engineering discipline All aspects of software production

Engineering: 

Engineering Engineers make the things work Solving problems understand the problem analyze the problem Find solutions Constructing the solution from parts that address the problem's various aspects - do a synthesis To achieve the goal engineers apply theories, methods and tools from different disciplines Search for solutions even when there is not theory or methods

Analysis of a problem: 

PROBLEM Subproblem 1 Subproblem 3 Subproblem 2 Analysis of a problem Identify different aspects of the problem Arrange the problems in clearly defined and understandable sub-problems

The synthesis: 

Solution 1 Solution 3 Solution 2 Solution 4 The synthesis Find solutions for subproblems Put together solutions to a consistent view Provide (make) a solution

Engineering Example – the Vasa Ship: 

Engineering Example – the Vasa Ship 1625 King Gustav II Adolf decided to start build Wasa  1628 - maiden voyage.   Length- 69 metres Maximum width - 11.7 metres From keel to the top of the main mast - 52.5 metres Height of the stern - 19.3 metres Crew: 445 men, Seamen – 145, Soldiers - 300 Armament 64 guns Thousands of people involved in the project Selecting wood, building different parts Providing food, other services A master piece of work!

Vasa – Example of Bad Engineering: 

Vasa – Example of Bad Engineering the ship capsized on her maiden voyage in the harbor of Stockholm. Why did the Vasa capsize?

Why did the Vasa capsize? : 

Why did the Vasa capsize? The Vasa capsized because it was not stable; The Vasa capsized because the building process (or in terms of software engineering, the development project) was inadequate.

How to calculate stability?: 

How to calculate stability? The forces are of equal size and in the opposite directions

The ship heels at an angle: 

The ship heels at an angle Ship’s center of gravity Center of buoyancy (water displacement) Has moved right h h – leverage effect (påtryckning)

Leverage effect (Moment): 

Leverage effect (Moment) http://members.aol.com/PhysicsDad/calcphys/lecture.html Torque is defined as the product of radius, force, and the sine of the angle between force and radius: t = r F (sin(X)) X

The ship heels at an angle: 

The ship heels at an angle h h – leverage effect (påtryckning) This Torque (Moment) will force the Ship to return back

The ship is unstable: 

The ship is unstable h – leverage effect (påtryckning) Torque has change the direction The ship will capsized

The ship is stable: 

The ship is stable h h If the center of gravity is very low – the ship will be stable

Why the ships heel?: 

Why the ships heel? h Because of wind! Or waves…

Slide17: 

Wind S1 S2 A B Torque a a2 a1 aA aB Stability Curve

Why did Vasa capsize?: 

Why did Vasa capsize? Engineering – Solve problems even when there is no formal theory Experience – best practices Observations Rules of thumb Processes to ensure the feasibility of problem solving COULD VASA BE SUCSSESFULLY BUILT IN SPITE OF LACK OF THEORY? WHAT DID PROJECT FAILED TO DO?

Other reasons why Vasa capsized?: 

Other reasons why Vasa capsized? Resource & budget plan. The project was delayed and in its later phases, there was enormous pressure to finish work on time. Project management. The main builder (or in modern terms, the project manager) unfortunately sickened and died during the building of the ship, and the consequence was weak management and very poor coordination of the groups building different parts. Changes in requirements. The original requirement for one gun deck was changed to two gun decks when the building of the ship had already begun. Because the king was behind the decision, its possible consequences were not analyzed. Conflicting requirements and trade-off analysis. The Vasa was intended to be a new type of ship combining superior sailing characteristics and maneuverability with overwhelming striking force.

Other reasons why Vasa capsized?: 

Other reasons why Vasa capsized? Design changes during the construction. The dimensions of the ship were changed several times during its construction with no proper analysis of the consequences. System design vs. detailed design. In many parts the design of the system was not clear and completed, and the final design was shaped during the implementation. The entire process is reminiscent of prototype building. In combination with poor project coordination this resulted in inadequate dimensions of some parts, such as insufficient space for ballast. Scalability. Vasa was designed as a smaller ship, and its dimensions were merely proportionally increased. Validation. The stability and other tests were primitive and not well performed. (Test: running across the deck)

Vasa Disaster – Similar do Software Projects: 

Vasa Disaster – Similar do Software Projects Similar situation in software development project No formal/theoretical background for requirements and solution Feasibility of the requirements not analyzed Changes in requirements during the project work Time and Budget not properly planned No proper verification Bad quality assurance Shortage in knowledge in new disciplines ....

Engineering vs. Software Engineering: 

Engineering vs. Software Engineering Many similarities Methods and procedures Base objectives and goals Many differences Difference between software and hardware/the real world Software – no physical limits Not visible Modifiable More complex Different theories and methods used Different experiences, traditions Different maturity level

All aspects of Software Development: 

All aspects of Software Development Aspects Technical (how technicaly solve the problem) Organisational (how to organize people) Financial Marketing Professional and ethical responsibility Research and Science

Computer Science Vs. Software Engineering: 

SOFTWARE ENGINEERING COMPUTER SCIENCE CUSTOMER Theories Principles, Methods and Tools to Solve Problem and Construct sSolutions Computer Functions Computer Science Vs. Software Engineering Solution Software Engineering Research & Science OTHER SCIENCES

Computer Science Vs. Software Engineering: 

Computer Science Vs. Software Engineering COMPUTER SCIENCE Algorithms and data structures Programming languages Architecture Numerical and symbolic computation Operating systems Software methodology and engineering Databases and information retrieval Artificial intelligence and robotics Human-computer communication Social, ethical, and professional issues SOFTWARE ENGINEERING In many cases a defuse boundaries between SE and CS

Methods and Technologies : 

Methods and Technologies Requirements Analysis Design Implementation Delivery Maintenance Test Software/Systems Engineering Methods Different Technologies Service Solution Phases

SE disciplines - examples: 

SE disciplines - examples Project management Development processes Requirements engineering Reverse engineering Test and Verification Software Maintenance Software Architecture Object-oriented modelling Software analysis Formal specification Software reliability Real-time Tools and environments Software Configuration Management Software engineering and the Internet Component-based SE Software Metrics Education Software Economics ......

Software Engineering Methods - Examples: 

Software Engineering Methods - Examples Project Management Software Development Models and Processes support Analyse/design methods (UML, OOP, Formal methods, ...) Programming Methods /Languages Configuration Management Component-based Software Engineering (CBSE) Customer support, Maintenance Test and Verification Architectural analysis (tradeoff analysis, quality, attributes…) Requirements Engineering Requirements Analysis Design Implementation Delivery Maintenance Test Service

What is then Software Engineering Research?: 

What is then Software Engineering Research? Analyzing natures of problems and their solutions Finding more general principles that SE can use Developing methods and tools Implementing principles on new problem domains ……

Software Engineering Research: 

Software Engineering Research Different methods used SE Exemplified by Software Architecture Presentation extracted from Mary Show’s presentation on ICSE 2001 in Toronto http://www-2.cs.cmu.edu/~Compose/paper_abstracts/etaps-2002.html

Slide31: 

REAL WORLD Practical problem REAL WORLD Practical Solution ?

Research Model: 

Research Model

Example: Software Architecture: 

Example: Software Architecture The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components and the relationships among them     L. Bass, P. Clements, R. Kazman, Software Architecture In Practise, Addison Wesley, 1998

Software architecture – system decomposition: 

Software architecture – system decomposition System subsystem Subsystem component component component

Next step - Architectural Style: 

Recurring structures that occur in software systems AS = {Component types,Connector types,Constraints} Next step - Architectural Style Component and Connector Types Layered Abstract Machines Buss Shared Repository Component and Connector Types Pipe and Filter

Next step: Aspects of Software Architecture: 

Next step: Aspects of Software Architecture Connector Role Port Attachment (sub)System Arch Component Representation Elements and Form Rationale Describes how the architecture satisfies system requirements for both functional and extra-functional properties.

Next step: Formalization: 

Next step: Formalization Conceptual Architecture Example - UML

SE Research phases: 

SE Research phases Research Questions

Summary: 

Summary Software Engineering is oriented on practical things from the real word Understanding problems, providing solutions SE uses methods and tools for solving the problems from different disciplines SE research Understanding principles Defining principle for solving the problems Developing tools and methods