Use of Architecture Centric Engineering for Improving a Software System Felix H. Bachman Senior Technical Staff October 17, 2012 © 2010 Carnegie Mellon University The layout of your screen is completely customizable by you ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Felix H. Bachman Senior Technical Staff Felix H. Bachmann is a senior member of the technical staff at the Software Engineering Institute (SEI) working in the Research, Technology, and System Solutions Program on both the Architecture Practices and Product Line Practice initiatives. There he is the team lead for architecture-centric product line practices, a co-author of the Attribute-Driven Design Method, a contributor to and instructor for the Architecture Tradeoff Analysis Method (ATAM) Evaluator Training, and a co-author of Documenting Software Architectures: Views and Beyond. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Use of Architecture Centric Engineering Do You Have the Right Architecture? for Improving a Software System ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Formulate the problem BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Create the plan BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Design alternatives BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Document solution BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM Challenge the solution ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Provide implementation details BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Active design review BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering Not part of this presentation BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP X SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Agenda: Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM Conformance review ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Let’s Get Started ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering (ACE) Formulate the problem BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Formulate the Problem – 1 Changes to an architecture are typically driven by some quality attribute property of the system that is undesirable to some stakeholders, such as end users or system administrators. Often there are statements like: The system doesn’t work The system is too slow It is too expensive to add new features Those statements are not helpful at all because they do not provide any insight into which property/properties are affected. Statements such as The system does not have the function X Seldom lead to architecture changes. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Formulate the Problem – 2 The developers’ quick answer such as, “Let’s fix it” (something in the system) is risky because The fix may not address the root cause The fix may introduce other undesirable properties The fix is more expensive than it could have been The stakeholder may say: “That is not what I meant!” Before any work starts there needs to be a problem statement that describes the undesired property the stakeholder observes. When I click this button it takes 10 seconds before I get an answer A problem statement describes some function/activity with a measurable property, such as timing, that is observable. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Formulate the Problem – 3 The problem statement can easily be transformed into a quality attribute scenario describing the desired outcome: The end user clicks the “submit” button. The system executes the request and returns the result in 2 seconds on average. A customer requests the implementation of a new report. The report is implemented, tested, and ready for deployment within two weeks of effort. Never, never, and did I mention: Never … … start an architecture-change exercise without scenarios that state the desired outcome of the change in a measurable way. The involved stakeholders need to agree to those scenarios: Would you be happy if the system would behave as stated in the scenario? ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering Create the plan BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Create the Plan Why create a plan? That’s overkill! Let’s just fix it! If you are lucky, you will be asked when the problem will be fixed, but management will be unhappy with your answer and will give you a tighter deadline. Mostly you will be given a deadline that seems unreasonable to you. You typically will give in and say, “We will try.” Without a plan, you yourself will not know what is involved and how long it will take. Without a sound plan you have no negotiation position to convince your management how long the task really takes and what is involved. Management is NOT evil. When you present a sound plan, they will agree (mostly). ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Create the Plan – Content What should the plan include? The first step is always to begin with what is clearly understood and identify the areas that are uncertain or unknown. If everything was clear and understood, this problem most likely would not exist. Start with a rough sketch of the part of the architecture that is likely involved in the solution. The sketch does not depict a full solution. It shows what you now think the problem is and how it can be solved. It is the basis for planning, not a complete design. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Create the Plan – Estimate List the tasks that must be done. If you don’t know the high-level tasks you have to go through, use the outline of this webinar! If something is not clear, add a task that gets necessary information, such as prototyping. Estimate the effort involved in executing those tasks. A measure that correlates well to effort for architecture tasks is the number of diagrams it takes to describe the solution with enough details for implementation So, instead of story points or function points you can use “diagram points” Example: The solution for one scenario can be described in five diagrams (structure and behavior) at average. It takes about one day to create a complete diagram including the description. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Create the Plan – Validate Do not forget to add a task for validating your solution. How do you know that your solution will work? How do you know that the side effects of your solution will not introduce new problems? This is required before the implementation begins. The evidence can be obtained by prototyping, system monitoring, expert reviews, stakeholder interviews, etc. With some experience, creating the first plan should not take longer then 3 to 10 hours, depending on the complexity of the task. Present your plan to management and get approval. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering Design alternatives BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Design Alternatives There is never just one solution. There is no perfect solution. Every solution comes with a price. • development and maintenance cost • diminishing of other quality attributes (e.g., the system will be slower) • possible change of operational processes • lengthy implementation • Etc. It takes at least two people to brainstorm and discuss possible solutions. List all the plausible solutions in a table and add columns for Pros and Cons. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Design Alternatives – Impact Understand the impact your solution has. List desired impact as a “Pro” and undesired as a “Con.” Use the Pros and Cons table to converge on an appropriate solution. In most cases, the solution is a combination of the proposed solutions to alleviate the negative impact. If there is more than one appropriate solution • Pick your favorite and describe it in more detail. • Describe the differences the other solutions have. • Present your findings to the stakeholders to come to a decision. In most cases, the stakeholders will follow your suggestion. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM Document solution ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Document Solution composite structure Bid Processor Change the architecture model/documentation to reflect your solution. «thread» Bid Processor Time Events Command {1..*} «flow» Auction AuctionManager «use» Collect/create convincing evidence that your solution will work. Auction Transaction Sequence Number Auction Information «flow» «flow» «flow» Auction Information, Sync Message Bid Response, Sync Message «flow» Business Rules Processor Bid Validation Bid «flow» «use» «use» «use» Bid, Sync Message Administrative Data Object access «flow» Document the evidence! sd Order Process Latency - Matching Engine Lev el processing «connector» «thread» :Communication Bus :Communications Peer :Dispatcher «connector» «thread» :Queue :Bid Processor Administrative 1 Data Objects (from Components) send(Message) {0.002 msec.} onReceive(Order) If you do not have evidence that your solution will work, how can you convince anyone else? This is a generic call to access data from the ADO. {0.008 msec.} put(Order) When this method is called, the timer starts. {0.005 msec.} get(Order) This time includes serializacion and deserialization. getInformation() :ADO Information «invariant» {Response time less or equals to 0.980 msec} When this method is called, the timer stops. send(Order Response) {0.005 msec.} send(Message Response) Find out the incomming order rate, so we will know if we can process faster than the orders arrive or the other way which will affect the queue size. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Document Solution – Get Help You are not required to do everything on your own. As soon as you have some idea which components will be involved in the change, involve the people who know these components. Ask for their opinions. You may have to include other stakeholders, such as end users or system administrators, if the change influences how they work with the system. Get feedback early and often. In this step, you will probably discover that your initial plan was wrong. Fix it! Do not throw the plan away. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Document Solution – Package it Create a documentation package with all the information required to understand the change. This makes reviews easier and helps the developers understand what is involved and to implement correctly. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM Challenge the solution ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Challenge the Solution – Peer Review It is great that you believe your solution will work! Have a peer review with an expert that understands the quality attribute involved in the scenario, e.g. a performance expert or usability expert. It is always a good idea to invite the developers who will implement the change. In some cases, you may have to invite other important stakeholders. Keep the number of invited people low. A peer review should not last longer then three hours. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Challenge the Solution – Peer Review In the step before (documentation), you created a document package with all the necessary information describing your change. There is nothing else required for the peer review. The architecture evaluation process has to answer the following questions: Do the quality attribute properties of the identified components support the given quality attribute scenario sufficiently? Is the negative impact of the chosen architecture approaches on other quality attribute scenarios acceptable? ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Challenge the Solution It is the architect of the system who has to answer these questions. • If the answers are documented, examining the documentation is sufficient for the evaluation. • If not, the architect has to provide the answers in a review. The evidence provided must be sufficient to convince quality attribute experts and the stakeholders. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture Evaluation using the ATAM® Business Drivers Quality Attributes Scenarios Analysis Software Architecture Architectural Approaches Architectural Decisions Tradeoffs impacts Sensitivity Points distilled into Risk Themes Non-Risks Risks ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Challenge the Solution - Results Sometimes a review shows that a proposed solution is not as good as expected. It is better to now go back and work on another solution than to have the big surprise after a lot of time and money was invested. If the review result shows that your solution is acceptable, move on to the next step. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Design Cycle Complete Plan Quality Attribute Scenario(s) BUSINESS AND MISSION GOALS Attribute Driven Design ACE/TSP ARCHITECTURE Architecture PROCESS Views and Beyond Scenario-based peer review Architecture Tradeoff Analysis Method ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Polling Question What do you think: How much effort will it take to go through the design cycle as presented once? • 1 Day? • 1 Week? • 1 Month? • 4 Month? • 6 Month? ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Polling Question – All of It! If there is just one scenario and it can be fixed by introducing a known concept into the architecture, it can be done in one day. If there is one scenario that requires introducing a new concept, it may take one week. If a scenario requires some new technology, it may take up to one month. If there are several scenarios, it will take longer. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP Provide implementation details SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Provide Implementation Details Thus far, we have executed the design cycle of architecture development. This led to • documented solution organized around quality attribute scenarios • a level of detail that is sufficient to provide the required evidence All the information obtained so far is usually not sufficient to begin implementation of the system. • more details especially for module interfaces and responsibilities • documentation organized around work packages for developers (modules) • installation of a feedback loop between developers and architects UML-based tools work well for the implementation cycle – because that’s what they were made for. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University What We Have So Far class Dependencies MSLiteServ er «instantiate» This is typically what exists after the design cycle is done. Adapter Manager «use» «use» «use» Serv ices Adapter Interface «instantiate» «instantiate» «use» «use» «use» «use» «Version 1» Adapter There is important information missing to allow for easy implementation. «use» «Version 2» Adapter BTW! It is a good idea to revisit the plan now. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Work Packages for the Development – 1 The purpose of a work package is to provide the information needed with sufficient detail to an individual or team to support an implementation as envisioned. Multiple work packages are required if multiple individuals or teams are involved. A work package contains the descriptions of one or more modules. • context • structural description «instantiate» Adapter Manager «use» • behavioral description «use» «use» Serv ices Adapter Interface «use» «use» «Version 1» Adapter «instantiate» «instantiate» «use» «use» «use» «Version 2» Adapter Context ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Work Packages for the Development – 1 The structural description contains description of the • module(s) to implement or change • external interfaces the module has to provide • external interfaces this module is allowed to use «interface» IAdapterV2 + + + «interface» IIAdapterV2 alarmAcknowledge(Alarm) : void alarmEvent(string) : void setValue(int, string) : void + + alarmEvent(Alarm) : void command(object, string) : void «use» «Version 2» Adapter «interface» IServ icesFactory responsibilities Communicated via interface instance Manages the connected field system Receives alarms Receives commands «use» + + getAlarmInstance(string) : Alarm getAuthenticationInstance(string) : void ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Work Packages for the Development – 2 The behavioral description contains • a set of use cases that are relevant for these modules • a description of the typical interaction of the modules with the external elements, e.g. sequence diagrams «Version 2» :ServicesFactory :IAdapterV2 :Adapter Manager :Adapter FSS alarmEvent(string) FSS sends alarm message getAuthenticationInstance(string) :AuthenticationCredentials new() FSS sends alarm message w ith authentication FSS getCredientials() :credentials authenticate(string) :boolean Send command to FSS getAlarmInstance(string) :Alarm new() Use Case Diagram :AlarmSingle Sequence Diagram ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture Documentation Complete At that point, we understand enough to be sure the solution will work. This understanding is documented sufficiently to inform others on how to implement the solution. At least that is what we think! ACE Development Life-cycle Twitter #seiwebinar • Next step is the detailed design. © 2012 Carnegie Mellon University Architecture-Centric Engineering Active design review BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Active Design Review Are we sure that if we hand the documentation to development that they have the necessary information to implement the solution as envisioned? We know that we cannot create the perfect documentation. No one pays for it! We need to document only what is necessary and not more. If some documentation is not used then why create it? We tend to create minimal documentation, and that is good! But it carries the risk that we will not make sufficiently clear how to implement the solution. Therefore we need to check the documentation for its fitness for purpose. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Active Design Review – Purpose and Setup The purpose of an active design review is to • effectively communicate the designed solution to the developers • get feedback about the documentation and possible areas for improving it Before the review • Developers already have their areas of responsibility assigned, which are usually sets of modules they have to implement or maintain. • Developers have the documentation and have had a chance to read it. • If the documentation was done using a tool (such as a UML tool), the developers are familiar with that tool and have access. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Active Design Reviews – Process – 1 Architects and developers meet for about three hours. It is best if the group meets face to face. • One architect presents one or two use cases to the group, which may or may not be documented. • Using diagrams or text, the architects describe in principle how the use case would utilize the modules. • Every developer has about two hours to sketch what they would have to implement in their modules to make the use case work correctly. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Active Design Reviews – Process – 2 • At any point during the review, developers are allowed to ask questions. One of the architects acts as scribe and notes all the questions that came up. • After two hours, every developer presents their sketched work plan to the architects. • Architects check the presented work plans against the architecture and clarify and note any discrepancies. After the review, the developers should know what they have to do, while the architects have a list of possible improvements to the architecture and its documentation. And those sketches the developers produced during the review are a wonderful basis for planning the implementation effort. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering Not part of this presentation BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP X SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering Conformance review BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture Drift Guidelines for transforming architecture elements into implementation Architecture ? Drift Mapping Functions Implementation Evidence that implementation conforms to the architecture For the implementation to exhibit the quality attributes engineered at the architectural level, it must conform to the architecture. There will be discrepancies between the architecture and the implementation for a variety of reasons; also known as “architectural drift.” ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Conformance Reviews The purpose of conformance reviews is to discover the drift and to remove it. • If the reason for the drift is a misinterpretation of the architecture during implementation, adjusting the code reduces the drift. • If the reason for the drift is discovery of problems with the architecture during implementation, adjusting the architecture reduces the drift. It is the responsibility of the developers to provide sufficient evidence to the architects that the implementation follows the architecture. Without proper preparation before starting the implementation, it will be difficult to almost impossible to show that the implementation conforms to the architecture. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Conformance Guidelines An architectural element (module) will most likely be implemented by a set of classes/functions. There are many ways that this can be done. Some of those make conformance reviews easy, some make them almost impossible. Provide guidelines to development before they start implementing, such as • Have a single class (main class) with the same name as the module that implements the defined interface and acts as a façade. • Use decomposed classes/functions to provide interfaces that are used only within the decomposition. • Have the main class route requests to the decomposed classes/functions. These kind of guidelines support creating/using tools that can scan the code and produce output that can easily be compared against the architecture. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Conformance Guidelines – From Module composite structure Auction Manager - Detail Design AuctionManager + + + + + + + + + + + + + + + create(Configuration Value) : void deleteBid(Object) : void getBusinessStatistics() : Business Statistics getLock() : boolean getStatisticalInformation() : Statistics Interface getSyncOperations() : Sync Message insertBid(Bid) : void modifyBid(Bid) : void nextSequenceNumber() : long processSyncMessage(Sync Message) : void queryBids(Bid) : Order releaseLock() : void resetBuffers() : void setInformation(Book Information) : void setSymbol(Symbol Interface) : void An architectural element, in this case a module responsibilities Create and buffer sync operations when a method is invoked Create the auction Delete Get lock Insert Keep the state of the instrument Manage a unique transaction sequence number Modify Obtain statistics Process sync operations in order Query Release lock Reset Buffers Send alert when possible corrupted transaction sequence number ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Conformance Guidelines – To Code Auction Manager Module Implementation «interface» IAuctionManager + + + + + + + + + Detailed design of the implementation of this module This is an easy case where the developers stayed close to a one-to-one mapping of the module to the implementation deleteBid(bidId) : boolean getBestPrice() : Bid getBookStatistics() : AuctionStatistics getStatistics() : OBPStatistics insertBid(Bid) : void updateExpirationDate(BidId, Date) : void updateExpirationTime(BidId, Timestamp) : void updateMaxPrice(BidId, BigInteger) : void updatePrice(BidId, BigInteger) : long Statistics AuctionManager BStatistics - auctionStatistics: AuctionStatistics maxBidId: int statistic: BStatistics + + + + + + AuctionManager(OBStatistics, List<ConfigurationValue>) getAuctionStatistics() : AuctionStatistics getStatistics() : OBPStatistics getStatistics() : AuctionStatistics insertBid(Bid) : void updatePrice(BidId, BigInteger) : long - numberOfBidsProcessed: long numberOfCancelledBids: long Statistics AuctionStatistics - «use» «use» «interface» IBidValidation Auction - buyView: SortedMap<BigInteger, SortedSet<Bid>> sellView: SortedMap<BigInteger, SortedSet<Bid>> + Auction() bestBid: BigInteger totalNumberOfBids: long + + + BidValidation(BStatistics) : void getStatisticalInformation() : Statistics validate(Bid) : ValidationResult ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Conformance Review A conformance review does not last longer than three hours. The developer uses tools to provide evidence showing how the code maps to the architecture element (module). For all discrepancies, the developer has to provide a written reason why it is there; the fewer the discrepancies, the less work. In the review, it is decided how to deal with those discrepancies by changing either the code or the architecture. After the results of the review are implemented, the architecture drift should be zero. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University ACE – Implementation Cycle Implementation Details ARCHITECTURE Active Design Review ACE/TSP SYSTEM Development PROCESS Conformance Review ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University Architecture-Centric Engineering BUSINESS AND MISSION GOALS ACE/TSP ARCHITECTURE ACE/TSP SYSTEM ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University NO WARRANTY THIS MATERIAL OF CARNEGIE MELLON UNIVERSITY AND ITS SOFTWARE ENGINEERING INSTITUTE IS FURNISHED ON AN “AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. Use of any trademarks in this presentation is not intended in any way to infringe on the rights of the trademark holder. This Presentation may be reproduced in its entirety, without modification, and freely distributed in written or electronic form without requesting formal permission. Permission is required for any other use. Requests for permission should be directed to the Software Engineering Institute at permission@sei.cmu.edu. This work was created in the performance of Federal Government Contract Number FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. The Government of the United States has a royalty-free governmentpurpose license to use, duplicate, or disclose the work, in whole or in part and in any manner, and to have or permit others to do so, for government purposes pursuant to the copyright license under the clause at 252.227-7013. ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University As projects continue to grow in scale and complexity, effective collaboration across geographical, cultural, and technical boundaries is increasingly prevalent and essential to system success. SATURN 2012 will explore the theme of “Architecture: Catalyst for Collaboration.” St. Petersburg, Florida May 7-11 Call for Submissions until January 7, 2013 http://www.sei.cmu.edu/saturn/2013/call-for-submissions/ ACE Development Life-cycle Twitter #seiwebinar © 2012 Carnegie Mellon University