Abstract
A classical approach to program derivation is to progressively extend a simple specification and then incrementally refine it to an implementation. We claim this approach is hard or impractical when reverse engineering legacy software architectures. We present a case study that shows optimizations and pushouts---in addition to refinements and extensions---are essential for practical stepwise development of complex software architectures.
- M. Abi-Antoun and N. Medvidovic. Enabling the Refinement of a Software Arch. into a Design. In UML, 1999. Google Scholar
Digital Library
- M. Aldinucci, M. Coppola, and M. Danalutto. Rewriting skeleton programs: how to evaluate the data-parallel stream-parallel tradeoff. In CMPP, 1998.Google Scholar
- S. Apel, C. Kästner, and C. Lengauer. Featurehouse: Language-independent, automated software composition. In ICSE, 2009. Google Scholar
Digital Library
- R. Banach, M. Poppleton, C. Jeske, and S. Stepney. Engineering and theoretical underpinnings of retrenchment. Sci. Comput. Program., 67(2--3): 301--329, 2007. Google Scholar
Digital Library
- D. Batory, J. Sarvela, and A. Rauschmayer. Scaling Step-Wise Refinement. IEEE TSE, June 2004. Google Scholar
Digital Library
- I. D. Baxter. Design Maintenance Systems. CACM, April 1992. Google Scholar
Digital Library
- J. P. Bernhard and B. Rumpe. Stepwise Refinement of Data Flow Architectures. Technical Report TUM-19746, TU München, 1997.Google Scholar
- R. V. Book. Confluent and other types of thue systems. J. ACM, 29: 171--182, January 1982. Google Scholar
Digital Library
- M. Broy. Compositional Refinement of Interactive Systems. JACM, 44(6), 1992. Google Scholar
Digital Library
- E. Bruneton, T. Coupaye, and J. Stefani. The Fractal Component Model. http://fractal.ow2.org, 2004.Google Scholar
- R. Bruni, A. Bucchiarone, S. Gnesi, D. Hirsch, and A. L. Lafuente. Graph-Based Design and Analysis of Dynamic Software Arch. In LNCS. Springer-Verlag, 2008. Google Scholar
Digital Library
- R. Burstall and J. Darlington. A transformation system for developing recursive programs. J. ACM, 24(1): 44--67, 1977. Google Scholar
Digital Library
- M. Castro. Practical Byzantine Fault Tolerance. PhD thesis, MIT, Jan. 2001.Google Scholar
- A. Clement, M. Kapritsos, S. Lee, Y. Wang, L. Alvisi, M. Dahlin, and T. L. Riché. UpRight Cluster Services. In SOSP, Oct. 2009. Google Scholar
Digital Library
- M. Cole. Algorithmic skeletons: structured management of parallel computation. MIT Press, Cambridge, MA, USA, 1989. Google Scholar
Digital Library
- J. Dean and S. Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. In OSDI, Dec. 2004. Google Scholar
Digital Library
- S. Ducasse, D. Pollet, and L. Poyet. A Process-Oriented Software Arch. Reconstruction Taxonomy. In CSMR, 2007. Google Scholar
Digital Library
- A. Egyed, N. Mehta, and N. Medvidovic. SW Connectors and Refinement in Family Arch. In IWSAPF, 2000. Google Scholar
Digital Library
- J. Favre. Cacophony: Metamodel-driven architecture recovery. In WCRE, 2004. Google Scholar
Digital Library
- M. J. Fischer, N. A. Lynch, and M. S. Paterson. Impossibility of Distributed Consensus with One Faulty Process. J. ACM, 32: 374--382, April 1985. Google Scholar
Digital Library
- Code Generator. http://code.google.com/p/stepwise-ft/.Google Scholar
- D. Garlan. Style-Based Refinement for Software Architecture. In ISAW, 1996. Google Scholar
Digital Library
- M. M. Gorlick and R. R. Razouk. Using Weaves for Software Construction and Analysis. In ICSE, 1991. Google Scholar
Digital Library
- C. Green, D. Luckham, R. Balzer, T. Cheatham, and C. Rich. Report on a knowledge-based software assistant. Kestrel Institute Technical Report KES.U.83.2, 1983.Google Scholar
- Hadoop. http://hadoop.apache.org/core/.Google Scholar
- R. Heckel and S. Thöne. Behavior-Preserving Refinement Relations Between Dynamic Soft. Arch. In WADT, 2004. Google Scholar
Digital Library
- E. Hehner. Predicative Programming Part 1. CACM, 1984. Google Scholar
Digital Library
- R. Holt, A. Winter, and A. Schurr. GXL: Toward a Standard Exchange Format. In Reverse Engineering, Nov. 2000. Google Scholar
Digital Library
- K. Kang, S. Cohen, J. Hess, W. Novak, and A. Peterson. Feature-oriented domain analysis (foda) feasibility study. CMU/SEI-90-TR-021, 1990.Google Scholar
- I. Kassios. A Theory of Object Oriented Refinement. PhD thesis, University of Toronto, 2006. Google Scholar
Digital Library
- C. Kästner, S. Apel, and M. Kuhlemann. Granularity in software product lines. In ICSE, 2008.Google Scholar
Digital Library
- E. Kohler, R. Morris, B. Chen, J. Jannotti, and M. F. Kaashoek. The Click Modular Router. ACM Trans. Comput. Syst., 18(3): 263--297, Aug. 2000. Google Scholar
Digital Library
- R. Koschke. Architecture Reconstruction: Tutorial on Reverse Engineering to the Architectural Level. In LNCS 5413, 2009. Google Scholar
Digital Library
- R. Kotla. xbft: Bzyantine Fault Tolerance with High Performance, Low Cost, and Aggressive Fault Isolation. PhD thesis, The University of Texas at Austin, 2008. Google Scholar
Digital Library
- R. Kotla, L. Alvisi, M. Dahlin, A. Clement, and E. Wong. Zyzzyva: Speculative Byzantine Fault Tolerance. In SOSP, Oct. 2007. Google Scholar
Digital Library
- L. Lamport. The Part-Time Parliament. ACM ToCS, 16(2): 133--169, 1998. Google Scholar
Digital Library
- H. C. Li, A. Clement, A. S. Aiyer, and L. Alvisi. The Paxos Register. In IEEE SRDS, 2007. Google Scholar
Digital Library
- M. R. Lowry, A. Philpot, T. Pressburger, and I. Underwood. Amphion: Automatic programming for scientific subroutine libraries. In ISMIS, 1994. Google Scholar
Digital Library
- O. Maqbool and H. Babri. Hierarchical Clustering for Software Arch. Recovery. IEEE TSE, pages 759--780, 2007. Google Scholar
Digital Library
- T. Mens and et al. A Taxonomy of Model Transformations. In GraMoT, 2005.Google Scholar
- D. L. Métayer. Describing Software Arch. Styles Using Graph Grammars. IEEE TSE, 24(7): 521--533, 1998. Google Scholar
Digital Library
- M. Moriconi, X. Qian, and R. A. Riemenschneider. Correct Architectural Refinement. IEEE TSE, 21: 356--372, 1995. Google Scholar
Digital Library
- S. Mullender, editor. Distributed Systems. Addision-Wesley, 2nd edition, 2003.Google Scholar
- National Instruments LabVIEW 2011. http://www.ni.com/labview/.Google Scholar
- Future of Software Engineering Research. http://www.nitrd.gov/SUBCOMMITTEE%5Csdp%5Cfoser%5CFOSER%20December%202011.pdf, 2011.Google Scholar
- C. H. Papadimitriou. The Serializability of Concurrent Database Updates. J. ACM, 26(4): 631--653, 1979. Google Scholar
Digital Library
- B. Pierce. Basic Category Theory for Computer Scientists. MIT Press, 1991. Google Scholar
Digital Library
- M. Poppleton. Private Correspondence. Private Correspondence, 2010.Google Scholar
- F. B. Schneider. Implementing Fault-Tolerant Services Using the State Machine Approach: A Tutorial. ACM Computing Surveys, 22(4): 299--319, Sept. 1990. Google Scholar
Digital Library
- M. Shaw and D. Garlan. Software Architecture: Perspectives on an Emerging Discipline. Prentice Hall, 1996. Google Scholar
Digital Library
- D. Smith. Mechanizing the development of software. In Proc. of the Marktoberdorf Int. Summer School, 1999.Google Scholar
- J. Spivey. The Z Notation: A Reference Manual. Prentice Hall, 1989. Google Scholar
Digital Library
- J. M. Spivey. The Z Notation: A Reference Manual, 1998. Google Scholar
Digital Library
- W. Thies. Lang. and Compiler Support for Stream Programs. PhD thesis, MIT, Feb. 2009. Google Scholar
Digital Library
- S. Trujillo, D. Batory, and O. Diaz. Feature Oriented Model Driven Develop.: A Case Study for Portlets. In ICSE, 2007. Google Scholar
Digital Library
- T. Tseng, J. Aldrich, D. Garlan, and B. Schmerl. Semantic Issues in Arch. Refinement. Technical report, CMU, 2004.Google Scholar
- M. Volter and I. Groher. Product Line Implementation using AO and MD Software Development. In SPLC, 2007. Google Scholar
Digital Library
- S. Wang, G. S. Avrunin, and L. A. Clarke. Arch. Building Blocks for Plug-and-Play System Design. In CBSE, 2006. Google Scholar
Digital Library
- N. Wirth. Program Development by Stepwise Refinement. CACM, 1971. Google Scholar
Digital Library
- J. Yin, J.-P. Martin, A. Venkataramani, L. Alvisi, and M. Dahlin. Separating Agreement from Execution for Byzantine Fault Tolerant Servers. In SOSP, 2003. Google Scholar
Digital Library
- Zookeeper. http://hadoop.apache.org/zookeeper.Google Scholar
- S. Zschaler and et. al. VML*: A Family of Languages for Variability Management in Software Product Lines. In SLE, 2009. Google Scholar
Digital Library
Index Terms
Pushouts in software architecture design
Recommendations
Pushouts in software architecture design
GPCE '12: Proceedings of the 11th International Conference on Generative Programming and Component EngineeringA classical approach to program derivation is to progressively extend a simple specification and then incrementally refine it to an implementation. We claim this approach is hard or impractical when reverse engineering legacy software architectures. We ...
Architecture-Centric Software Evolution by Software Metrics and Design Patterns
CSMR '02: Proceedings of the Sixth European Conference on Software Maintenance and ReengineeringIt is shown how software metrics and architectural patterns can be used for the management of software evolution. In the presented architecture-centric software evolution method the quality of a software system is assured in the software design phase by ...
Comparing architecture description languages for mobile software systems
SAM '08: Proceedings of the 1st international workshop on Software architectures and mobilitySoftware architecture is a technique which aids the development of complex and dynamic systems. Architecture Description Languages (ADLs) describe software architectures using a textual syntax or a graphical notation. However, not many ADLs have ...






Comments