Beruflich Dokumente
Kultur Dokumente
Reliable
Good software has few bugs
Flexible
Users needs change over time, even while software is being developed, so it is important to be able to make changes to the software later
Affordable Available
Affordable
Both to buy and maintain
Available
Otherwise it doesnt matter how good it is! Software must be able to run on available hardware, with an available operating system, etc. Software must be delivered as per the commitment 3
Characteristics of Modules
The following are the various characteristics the module in order to make development and maintenance of systems easy, cheap and reliable They are: Dependency Cohesion Interface Encapsulation Abstraction
5
Characteristics of Modules
Dependency / Coupling Module A depends on Module B if it is possible for some change to Module B to mean that Module A also needs to be changed. A system with many dependencies has high coupling. GOOD SYSTEMS HAVE LOW COUPLING BECAUSE THEN CHANGES TOONE PART OF A SYSTEM ARE LESS LIKELY TOPROPAGET THROUGHOUT THE SYSTEM Cohesion Modules are said to be cohesive when they work together that is changes in Module A does not warrant changes in Module B but together the Module s ensure that combined work they do does not affect other parts of the system
6
Characteristics of Modules
Interface & Encapsulation An interface to a module defines some features of the module on which its clients may rely. The rest of the system can only use the module in ways permitted by the interface(s); That is an interface Encapsulates the knowledge about the module
Characteristics of Modules
A module have several interfaces When we know Module A can sometimes be affected by Changes to Module B, we also want to able to identify as easily as possible what changes are required, if any, in our particular case. Sometimes it is convenient to document the services that module provides as several different interfaces, so that we can be more precise about what
8
Characteristics of Modules
Good Modules often have the property that their interfaces provide an ABSTRACTION of some intuitively understood thing which may nevertheless be complex to implement. The interface abstracts away from the things the client developer does not have to understand in order to use the
interface to a point in 2D and that the interface allows clients to get and set the position of the point using either Cartesian co-ordinates or polar coordinates whichever is convenient. Does the module store both set of coordinates and keep them consistent, or does it store one set and use that one to calculate the other on demand? This information is of no interest to client programmers; the module interface should abstract away from it and encapsulate the data structure inside the module. This kind of abstraction 10 and encapsulation is often referred to
Abstraction is when a client of a module does not need to know more than is in the interface Encapsulation is when a client of a module is not able to know more than is in the interface
11
Object Concepts
What is an Object? Conceptually an object is a thing we interact with. We can send messages and it will react How it behaves depends on the current internal state of the object, which may change, as part of the objects reaction to receiving the message
12
Object Concepts
An object has an identity which it distinguishes it from all other objects Hence, an object is a thing which has behavior, state and identity
13
Object Concepts
Thing: An object is a system representation of a conceptual thing. For example, an object may represent a physical thing such as customer, a board or a clock
14
Object Concepts
State: The state of the object is all the data which it currently encapsulates. An object normally has a number of named attributes (or instance variables or data members) each of which has a value. Some attributes can be mutable; that is their values can be changed. For ex. An object representing customer might have an attribute address whose value must change if customer moves out
15
Object Concepts
Behavior: The way an object acts and reacts, in terms of its state changes and message passing. An object understands certain messages, which is to say that it can receive the messages and act on them depending on the current values of the its attributes
16
Object Concepts
Identity: The object have a separate identity of their own. They are not just defined by the current values of their attributes
17
Classes
Class: A class describes a set of objects with an equivalent role or roles in a system. In class based object oriented languages, every object belongs to a class and the class of an object determines its interface
18
Inheritance
Inheritance is a technical feature of object oriented language in which a class derives or inherits the properties of the base class. As an example, consider a system in which there is a class whose objects represent lecturers and a class whose objects represents Director of Studies. Now director of studies is also a kind of Lecturer who is also looking into additional duties. Now let us define a new class Directorofstudies which would be a sub class of Lecturer and in 20 addition would have some other
What is UML?
The Unified Modeling Language (UML) is a standard language for specifying, visualizing, constructing, and documenting the artifacts of software systems, as well as for business modeling and other non-software systems. The UML represents a collection of best engineering practices that have proven successful in the modeling of large and complex systems. The UML is a very important part of developing object oriented software and the software development process. The UML uses mostly graphical notations to express the design of software projects. Using the UML helps project teams communicate, explore potential designs, and validate the architectural design of the software.
22
UML
Goals of UML
The primary goals in the design of the UML were: Provide users with a ready-to-use, expressive visual modeling language so they can develop and exchange meaningful models. Provide extensibility and specialization mechanisms to extend the core concepts. Be independent of particular programming languages and development processes. Provide a formal basis for understanding the modeling language.
23
UML
Encourage the growth of the OO tools market. Support higher-level development concepts such as collaborations, frameworks, patterns and components. Integrate best practices.
24
UML
Why Use UML?
As the strategic value of software increases for many companies, the industry looks for techniques to automate the production of software and to improve quality and reduce cost and time-to-market. These techniques include component technology, visual programming, patterns and frameworks. Businesses also seek techniques to manage the complexity of systems as they increase in scope and scale. In particular, they recognize the need to solve recurring architectural problems, such as physical distribution, concurrency, replication, security, load balancing and fault tolerance.
25
UML
Additionally, the development for the World Wide Web, while making some things simpler, has exacerbated these architectural problems. The Unified Modeling Language (UML) was designed to respond to these needs.
26
UML
Basic Building Blocks of UML Each UML diagram is designed to let developers and customers view a software system from a different perspective and in varying degrees of abstraction
27
UML
Use Case Diagram displays the relationship among actors and use cases. Class Diagram models class structure and contents using design elements such as classes, packages and objects. It also displays relationships such as containment, inheritance, associations and others.
28
UML
Interaction Diagrams Sequence Diagram displays the time sequence of the objects participating in the interaction. This consists of the vertical dimension (time) and horizontal dimension (different objects). Collaboration Diagram displays an interaction organized around the objects and their links to one another. Numbers are used to show the sequence of messages
29
UML
State Diagram displays the sequences of states that an object of an interaction goes through during its life in response to received stimuli, together with its responses and actions.
30
UML
Activity Diagram displays a special state diagram where most of the states are action states and most of the transitions are triggered by completion of the actions in the source states. This diagram focuses on flows driven by internal processing.
31
UML
Physical Diagrams Component Diagram displays the high level packaged structure of the code itself. Dependencies among components are shown, including source code components, binary code components, and executable components. Some components exist at compile time, at link time, at run times well as at more than one time.
32
UML
Deployment Diagram displays the configuration of run-time processing elements and the software components, processes, and objects that live on them. Software component instances represent run-time manifestations of code units.
33
Requirements Elicitation
Requirements Engineering is the first phase of the Software Lifecycle Production of a specification from informal ideas Goal: Requirements Specification System requirements specification: requirements describe Software and Hardware Software requirements specification: describe only Software RE is about what the system should do (not how to do it) Key influencing factor to the development process Failures made here result in high costs in later development phases System will meet the user/customer needs
35
36
37
38
41
43
45
46
48
49
51