Exercises Chapter 1
CHAPTER 1: Introduction
Experiential Exercises
A. The basic types of methodologies discussed in this chapter can be combined and integrated to form new hybrid methodologies. Suppose you were to combine throwaway prototyping with the use of waterfall development. What would the methodology look like? Draw a picture (similar to those in Figures 1-2 through 1-7). How would this new methodology compare to the others?
This new methodology would have a similar structure to the traditional waterfall approach; however, a throwaway prototyping component is inserted into the planning, design, and implementation stages to provide feedback for further system improvements. The throwaway prototype serves only to assist system design and development, and is not directly integrated into the final system.
B. Suppose you are a project manager using a waterfall development–based methodology on a large and complex project. Your manager has just read the latest article in Computerworld that advocates replacing this methodology with prototyping and comes to your office requesting you to switch. What do you say?
The major problem with prototyping is that its fast-paced system releases challenge attempts to conduct careful, methodical analysis. Often the prototype undergoes such significant changes that many initial design decisions become poor ones. This can cause problems in the development of complex systems because fundamental issues and problems are not recognized until well into the development process.
While one might think prototyping-based methodologies would also be appropriate with unfamiliar technology, they are much less so, since the early prototypes that are built usually only scratch the surface of the new technology. Usually, it is only after several prototypes and several months that the developers discover weaknesses or problems in the new technology.
Prototyping-based methodologies are not well suited to detailed analysis and design of complex projects. The traditional structured design–based methodologies can handle complex systems, but without the ability to get the system or prototypes into the users’ hands early on, some key issues may be overlooked.
C. Suppose you are a project manager who typically has been using a waterfall development–based methodology on a large and complex project. Your manager has just read the latest article in Computerworld that advocates replacing this methodology with the Unified Process and comes to your office requesting you to switch. What do you say?
Once a methodology is chosen, changing it will inevitably lead to schedule slips and cost overruns. It may also result in a product that fails to meet the requirements originally specified for it. With these words of caution, however, the waterfall methodology is perhaps the best one from which to switch, because each phase is completely self-contained. If it were necessary to switch methodologies (which is still not a good idea), then it could be coordinated at a phase transition to reduce the adverse effects.
The only reasonable answer you can provide is that, unless there is an unavoidable reason to do so, the methodology should not be changed.
D. Investigate IBM’s Rational Unified Process (RUP) on the Web. RUP is a commercial version that extends aspects of the Unified Process. Write a brief memo describing how it is related to the Unified Process as described in this chapter. (Hint: A good Web site with which to begin is www.306.ibm.com/software/
awdtools/rup/.)
The Unified Process was developed from its very beginnings to include two components: a generic (and free) process (which is what we normally refer to as the Unified Process), and a more detailed specification known as the Rational Unified Process (RUP) which was always meant to be a commercial process (and therefore, not free). RUP includes a host of features not found in the UP and is normally sold as part of a software application suite for computer-aided software engineering.
Perhaps the most noticeable difference between the UP and the RUP is that the latter refers to UP workflows as disciplines. Each of the disciplines (which have the same names as the corresponding workflows in UP), is composed of roles, work products, and tasks. The roles are sets of related skills and responsibilities that are used to select the appropriate human resources for a given task. The work products are the deliverables of a specific process. Lastly, the tasks are units of work assigned to a role and that yield a work product.
E. Suppose you are an analyst working for a small company to develop an accounting system. Would you use the Unified Process to develop the system, or would you prefer one of the traditional approaches? Why?
I would not recommend the Unified Process (UP) unless the company has a strong tradition of using it. The reason for this is that the scope of the project is likely to be small since this is a small organization, and it may not warrant the relatively high-cost overhead of the UP. Moreover, an accounting system normally involves rigid requirements and a strong reliability constraint. It is, therefore, not an ideal type of project with which to lead an organization away from its established practices.
Among the traditional approaches, this project appears to be ideal for throwaway prototyping development. In this case, different accounting tasks can be developed, and the systems tested to determine optimum performance. Although the project probably will not be large enough for parallel development, different applications may be simultaneously developed, and then consolidated into one system.
F. Suppose you are an analyst developing a new information system to automate the sales transactions and manage inventory for each retail store in a large chain. The system would be installed at each store and exchange data with a mainframe computer at the company’s head office. Would you use the Unified Process to develop the system or would you prefer one of the traditional approaches? Why?
This is a perfect scenario for the application of the Unified Process. The reason is that this methodology excels at distributed object-oriented development. Also the large scope of the project means that the relatively high-cost of the UP would be more than offset by the savings induced by reusability and a distributed framework.
G. Suppose you were an analyst developing a new executive information system intended to provide key strategic information from existing corporate databases to senior executives to help in their decision making. What type of methodology would you use? Why?
Its important to identify the special requirements that a management decision support system would have. For example, management decision support systems will involve a great deal of extraction from other databases, a great deal of interface design (which may vary among individual users), and a great deal of making additional tools available for users to refine data as they wish.
In this case, an XP agile methodology may be an effective method of development if a cohesive team of developers, programmers, and users can collectively share the necessary effort and communication to carry out the project.
Three of the key principles that XP uses to create successful systems are continuous testing, simple coding performed by pairs of developers, and close interactions with end users to build systems very quickly. After a superficial planning process, projects perform analysis, design, and implementation phases iteratively For small projects with highly motivated, cohesive, stable, and experienced teams, XP should work just fine.
H. Suppose you are an analyst working for a small company to develop an accounting system. What type of methodology would you use? Why?
<no answer was provided for this>
I. Investigate the Unified Modeling Language on the Web. Write a paragraph news brief describing the current state of the UML. (Hint: A good Web site with which to begin is www.uml.org.)
The very success of the Unified Modeling Language (UML) is its only drawback nowadays. This is the claim of one of the original UML authors, Ivar Jacobson, in a recent interview with Builder AU. Essentially, the widespread adoption of UML across the industry has led developers to add standardized symbols for a variety of niche applications. Jacobson estimates that 80% of the features in the current release of the UML are not widely used and are meant for a fairly small group of developers. Jacobson proposes the creation of an “essential UML” which would consist of the 20% of UML that is universally applicable. This would then allow developers to focus on the essentials while giving them the flexibility to add components as needed.
J. Investigate the Object Management Group (OMG) on the Web. Write a report describing the purpose of the OMG and what it is involved with besides the UML. (Hint: A good Web site with which to begin is www.omg.org.)
The Object Management Group is a consortium of organizations whose purpose it is to set standards for object-oriented systems. The OMG is the group that ratified the UML as an industry standard. In addition to the UML, the OMG is responsible for the development of other object-oriented products such as the Systems Modeling Language (SysML), which is a domain-specific modeling language for Systems Engineering based on the UML. Whereas UML is focused on software development, SysML is optimized for a broad range of systems and systems-of-systems. Other OMG specifications include the Model Driven Architecture (MDA), the MetaObject Facility (MOF), the XML Metadata Interface (XMI), the Common Warehouse Metamodel (CWM), the Common Object Request Broker Architecture (CORBA), and the Object Management Architecture (OMA).
K. Using the Web, find a set of CASE tools that support the UML. A couple of examples include Rational Rose and Visual Paradigm. Find at least two more. Write a short report describing how well they support the UML, and make a recommendation as to which one you believe would be best for a project team to use in developing an object-oriented information system using the UML.
One of the best commercial tools (besides the ones listed) is Sparx Systems’ Enterprise Architect. At a cost of between $95 and $335, this is a much more affordable product than IBM’s Rational line. It also offers many of the same features including end-to-end visibility, speed, stability, and performance. It supports all UML 2.1 diagrams and has robust importing and exporting capabilities for code analysis and creation, document generation, and general documentation.
In terms of good open-source, free CASE tools, StarUML is a solid performer. It runs on Microsoft Windows platforms, supports the UML 2.0 standard, provides a plug-in architecture for additional modules, and has a well designed interface. StarUML supports the most common 9 (out of 14) UML diagrams with automatic code generation in Java, C++ and C#. It also produces Microsoft Word, Excel, and PowerPoint documents.
Obviously, many considerations are important in selecting the best tool for a given project and team. If the budget allows, it is best to go with the best in the business, such as IBM’s Rational Software Architect, since it provides both a comprehensive set of features as well as very good customer support. If budget is an issue, there are good open-source options like StarUML.
L. Think about your ideal analyst position. Write a newspaper ad to hire someone for that position. What requirements would the job have? What skills and experience would be required? How would an applicant be able to demonstrate having the appropriate skills and experience?
The Senior IT/Business Analyst provides a link for IT Services to all appropriate company departments and specific clients for purposes of furthering the corporation’s business objectives and client initiatives. The fundamental objective of this position is to provide analysis, recommendation, communications and technical guidance associated with developing client systems and corporate Products.
Interacts with the IT groups and helps determine appropriate computer-related solutions to business problems. Provides analysis and definition to computer-related development and maintenance activities. Understands the relationship between and can define, business needs, functional requirements and technical requirements.
Works with Product Management to obtain an understanding of the varied business needs of multiple interrelated products. Understands the role of the system within the big picture and provides ideas and recommendations regarding the evolution of the system.
Works directly with all levels of staff at companies’ clients to understand their business challenge(s), and identify the technology solution companies can deploy to positively impact the client enterprise. Responds authoritatively to internal and external questions about technology issues at any level of granularity. Consults with Business Development Staff to develop an understanding of specific client needs.
The ideal candidate will have an understanding of Use Case Definition, Quality Attributes, and Business Process Flows, leading to detailed System Specifications as well as proven project and change management experience, including (but not limited to): assessment, risk management, communications, organizational design and development, performance improvement, and cultural change as well as a broad base of IT systems and process knowledge.
This analyst will:
*Be Well Traveled
*Have detailed systems and process knowledge
*Familiarity with the Aviation Industry
*Excellent Verbal & Written Communication skills
*Ability to achieve goals on multiple Projects
Responsibilities:
*Business Requirements Gathering – Use Cases, Quality Attributes, Glossary of Terms, Data Dictionary, etc.
*Team Communication – Facilitate collaborative problem solving and leverage existing solutions
*Scheduling – Maintains calendars and appointment schedules with business experts controlling the flow of information to and from Technical Developers
*Client Relationship Management – Identify client current and future needs via a close working relationship with client project management and project teams
*Report Requirements according to company Standards to Project Leaders
*Draft Test Plans to validate business requirements
*Project Initiation – Business Requirements Gathering, Team Formation, Contact Information, Identification of Deliverables, Timetables, Resources, and Dependencies
*Project Monitoring – Preparation and circulation of summarized project status
Requirements
*BS/BA, MA/MS/MBA preferred
*5+ years experience in IT Business Analysis
*3+ years experience in IT project Management
*Extensive IT experience
*Excellent Management and Communication skills
*Desire to travel, ability to travel extensively
*Desire to work in fast paced, rapidly changing IT environment
*Fluent Spanish A+
*Microsoft Certification A+
*Will be required to submit samples of work from one or more of the following categories: Use Cases, Business Process Flows, Business Glossary.