The Open UniversitySkip to content
 
Skip My preferences

My preferences

Skip Learning ToolsSkip Rate and Review

Rate and Review

Skip Alternative FormatsSkip Tags

Tags


Skip Share this unit with a friend

Share this unit with a friend

Help with sending a link to this unit (new window)
Permalink to this unit:
 

Topic outline

 

  • Time: 8 hours
    Level: Advanced

 
 

Introduction

  • Introduction Resource
  • Enterprise systems are software applications that automate and integrate all many of the key business processes of an organisation. With some understanding of software development, you will learn about...
 

1 Introducing the terminology

  • 1 Introducing the terminology Resource
  • Constructing enterprise systems is a complex engineering endeavour. As with other types of engineering, e.g. the construction of aircraft or suspension bridges, a lot of effort has to be put into planning...
 

2 Software development processes

  • 2.1 Stakeholders and activities Resource
  • Current enterprise systems are large and complex, and their construction involves many stakeholders, including customers, developers and users. Software development processes have emerged over the years...
  • 2.2 From waterfall to iterative development Resource
  • Historically, the first widely adopted software development process was the waterfall development process (or simply, waterfall).
  • 2.3 The Unified Process Resource
  • The Unified Process (UP) (Jacobson et al., 1999) has emerged as a popular iterative and incremental development process for building enterprise systems based on an object-oriented approach. It promotes...
  • 2.4 Emergent approaches to software development Resource
  • Iterative and incremental methods have been widely adopted in software development. Nowadays, high competitiveness, reduced time-to-market and pressure to develop flexible enterprise software together...
 

3 Modelling and the UML

  • 3.1 Domain, specification and design modelling Resource
  • Building quality software is often a complex and lengthy task. Software developers build models that represent what is important, devoid of unnecessary detail. These models help them to deal with the complexity...
  • 3.2 Modelling techniques and language Resource
  • Models are built using techniques. A technique is a tool to describe a particular way of viewing and understanding a system. It guides the creation of a model and defines the notation used to create it....
 

4 The object-oriented approach

  • 4.1 Modularity and the object-oriented approach Resource
  • In the previous sections we discussed software development processes and the role of modelling. In this section you will meet the main object concepts. Object-oriented programming preceded object-oriented...
  • 4.2 Objects Resource
  • To represent a thing such as an account or a payment from an object perspective, the software developers need to say how it can be used. An account is something that can be credited or debited with amounts...
  • 4.3 Networks of objects Resource
  • No serious program consists of a single object. Instead there will be a network of objects, which collaborate to achieve the functionality of the whole system. Figure 4 shows a network of objects representing...
  • 4.4 Collaborating objects Resource
  • The objects that comprise a program collaborate with one another to fulfill the functions of the system that the program represents. Collaboration occurs when one object requests a service from another...
  • 4.5 Classes Resource
  • In the hotel system, each room is different and may have a different occupant. However all rooms are the same in that each has a room name and a rate, for example, and each may have an occupant. If something...
  • 4.6 Inheritance Resource
  • When several different classes that support the same protocol are implemented, there could be a lot of repetitive coding. Rather than duplicate code in different classes, most object-oriented systems allow...
  • 4.7 Modelling with objects Resource
  • Object-oriented software development is very much focused on representing the world of the problem domain as a set of interacting objects. If the classes of the objects are chosen to correspond to natural...
 

5 Reuse

  • 5.1 The advantages of reuseability Resource
  • Reuse is the process of building new software from existing software assets, rather than starting from scratch. Reuse is an important factor in building flexible products that can be changed quickly...
  • 5.2 Frameworks Resource
  • A framework is a set of classes with well-defined interactions which are designed to solve specific problems. Frameworks are usually developed for a specific domain of application, say financial management...
  • 5.3 Components Resource
  • The term component has been used since software engineering emerged as a discipline in 1968, and it reflects the analogy with other engineering disciplines. Like electronic devices that have pins and are...
  • 5.4 Patterns Resource
  • While frameworks and components focus on the reuse of previously developed software, patterns focus on the reuse of expertise. A pattern is a general solution to problem; it is the result of abstracting...
 

6 CASE tools

  • 6 CASE tools Resource
  • Computer Assisted Software Engineering (CASE) tools were developed to support the professional system developer and improve their productivity in the complex task of developing large information...
 

7 Summary

  • 7 Summary Resource
  • This unit has introduced the main concepts used in this course, has given an overview of software development with an object-oriented approach and has discussed some of the issues that are relevant to...
 

References and Acknowledgements

Skip Log inSkip Related educational resources