The present invention generally relates to model-based design systems and methods, and more particularly to a system and method for managing a model-based design lifecycle.
There is an ever-increasing demand for quick time-to-market and diverse functionalities for many vehicular products in the aircraft, watercraft, and automobile industries. As such, the traditional development process has, in many instances, been replaced with a model-based development process. When implementing this process, which is oftentimes referred to as “Model-based Development” (MBD), a designer develops one or more software models that simulate a target product of system.
Due to the complexities of modern vehicular products and the diverse functionalities that they include, it is common for many different designers or groups of designers to be involved in the development of the various software models for a target product or system. For example, in the case where the target product or system is a new vehicle, a first group of designers may develop software models for simulating the fuel system, a second group of designers may develop software models for simulating the steering system, and a third group of designers may develop software models for simulating the suspension system. Each group of designers may utilize various design strategies or techniques during the development of their respective software models. These varying design strategies and techniques may result in variability in the performance, portability, and/or stability in the software models, and the systems that they describe, for the new vehicle. Such variability can substantially impede the ability of process and quality engineers to maintain a consistent level of quality control over the development process for the target product or system.
Accordingly, it is desirable to provide a method for managing the development processes and strategies that are utilized during the development of software models for a target product or system using an MBD. Furthermore, other desirable features and characteristics of the present invention will become apparent from the subsequent detailed description of the invention and the appended claims, taken in conjunction with the accompanying drawings and this background of the invention.
In one embodiment a system is provided for managing a model-based design lifecycle having a plurality of stages. The system comprises an input interface for receiving input from the user of the system, a display device, and a processor coupled to the input interface and the display device. The processor is configured to display a user interface on the display device, wherein the user interface comprises a plurality of controls that each corresponds to a different process associated with a stage of the model-based design lifecycle. Certain ones of the controls are configured to require the user to perform the corresponding processes in a required order and certain other ones of the controls are arranged to encourage the user to perform the corresponding operation in a preferred order. The processor is also configured to retrieve a software module for each selected control to implement the corresponding process.
In another embodiment, a method is provided for managing a model-based design lifecycle having a plurality of stages. The method comprises displaying a user interface on a display device, the user interface comprising a plurality of controls that each corresponds to a different process associated with a stage of the model-based design lifecycle. Certain ones of the controls are configured to require a user to perform the corresponding processes in a required order and certain other ones of the controls are configured to encourage the user to perform the corresponding processes in a preferred order. In addition, the method comprises retrieving a software module for each selected control in order to implement the corresponding process.
The present invention will hereinafter be described in conjunction with the following drawing figures, wherein like numerals denote like elements, and
The following detailed description is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background or the following detailed description.
The processing system 104, at least in the depicted embodiment, includes an input interface 108 and a processor 112. The input interface 108 is in operable communication with the processor 112 and is configured to receive input from a user and, in response to the user input, supply various signals to the processor 112. The input interface 108 may be any one, or combination, of various known user interface devices including, but not limited to, a cursor control device (CCD), such as a mouse, a trackball, or joystick, and/or a keyboard, one or more buttons, switches, or knobs. In the depicted embodiment, the input interface 108 includes a CCD 114 and a keyboard 116. A user may use the CCD 114 to, among other things, move a cursor symbol over, and select, various items rendered on the display device 102, and may use the keyboard 116 to, among other things, input various data. A more detailed description of the why a user may select various rendered items with the CCD 114, and the various data that a user may input is provided further below.
The processor 112 is in operable communication with the memory 106, the display device 102, and the user interface 108 via one or more non-illustrated cables and/or busses. The processor 112 is configured to be responsive to user input supplied via the input interface 108 to, among other things, selectively retrieve data from memory 106, and to command the display device 102 to render various graphical, icon, and/or textual images. The processor 112 may include one or more microprocessors, each of which may be any one of numerous known general-purpose microprocessors or application specific processors that operate in response to program instructions. In the depicted embodiment, the processor 112 includes on-board RAM (random access memory) 120 and on-board ROM (read only memory) 122. The program instructions that control the processor 112 may be stored in either or both the RAM 120 and the ROM 122, or on a non-illustrated local hard drive. It will be appreciated that this is merely exemplary of one scheme for storing operating system software and software routines, and that various other storage schemes may be implemented. It will also be appreciated that the processor 112 may be implemented using various other circuits, not just one or more programmable processors. For example, digital logic circuits and analog signal processing circuits could also be used.
The memory 106, as noted above, is in operable communication with the processor 112. The memory 106 has various data stored thereon. These data include one or more libraries and/or software modules that may are used by processor 112 to implement processes associated with the MBD lifecycle described below (
No matter the specific manner in which the display device 102, the processing system 104, and memory 106 are implemented and in operable communication, the processing system 104 is configured, generally in response to one or more user inputs to the user interface 108, to retrieve a software module from the memory 106. The processing system 104, implementing various software algorithms then performs the process associated with the retrieved software module.
Requirements stage 202 is the first stage of MBD lifecycle 200. During this stage 202 the requirements for the target product or system are identified. As further described below, these requirements will be linked to a software model for simulating the target product or system. The requirements stage 202 includes two processes, requirements identification 210 and requirements tracing 212.
Development stage 204 is the second stage of MBD lifecycle 200. During the development stage 204 a software model is generated for simulating the target product or model. The software model will support the requirements identified during requirements stage 202. In addition, the software model is analyzed to verify that it conforms to predetermined guidelines and to estimate its complexity. Finally, the software model is converted into source code for a predetermined programming language (e.g., the C programming language). The source code may be compiled into one or more executable formats and used for real-time simulation, prototyping, and/or embedded development of the target product or system. Development stage 204 includes five processes, software model development 214, guidelines review 216, custom guidelines review 218, software model complexity estimation 220, and source code generation 222.
Testing stage 206 is the final stage of MBD lifecycle 200. During the testing stage 206 the source code is analyzed to verify that it conforms to the software model. In addition, predetermined test vectors are applied to the software model and source code to determine if the support the requirements identified during requirements stage 202. Testing stage 206 includes three processes, model/code coverage 224, source code review 226, and requirements testing 228.
A description of each of the processes associated with MBD lifecycle 200, and their corresponding software modules will now be provided. Requirements identification 210 is associated with requirements stage 202. During this process 210, one or more designers identify requirements for the target product or system. For example, if the target product or system is a steering system for a new vehicle, the requirements may include a variable steering ratio and the ability to turn the wheel even when the vehicle is not moving. As described below, each of these requirements will be associated with a section or component of the software model that is designed to simulate the target product or system during development stage 204.
Requirements identification 210 may be implemented by a requirements identification module 150 (
Requirement number field 252 identifies a unique requirement number for requirement record 250. Requirement tag field 254 identifies a requirement tag that is used to generate a link 272 between requirement record 250 and a section of the software model described below. In one embodiment, link 272 comprises an embedded hyperlink that references the corresponding section or subsystem of the software model. The user activates link 272 to retrieve and view the corresponding section or subsystem of the software model. Priority field 258 describes the relative priority of the requirement (e.g., essential, useful, or desirable) and stability field 260 describes whether the requirement itself is likely to change. Further, description field 262, rationale field 264, and verification criteria field 266 respectively provide a textual description of the requirement, the rationale for the requirement, and the criteria for satisfying the requirement. Finally, assumption field 268 identifies any assumptions that should be made with respect to the requirement and constraints field 270 identifies the constraints for the requirement.
Returning to
Software model development 214 is the first process associated with development stage 204. During software model development 214, one or more designers develop a software model for simulating the identified requirements. The software model comprises a plurality of functional blocks that define high-level functions and may be arranged to generate a detailed block diagram of the target product or system. The software model is used to simulate the operation of the target product or system. Further, the software model may be segmented into one or more subsystems or other design components to simulate complex target models of systems.
Software model 300 also includes a link 316 to requirement record 250 (
Functional blocks 302-307 may be selected from one or more functional block libraries. As described above, these functional block libraries may be stored in memory 106 (
The restricted set of functional blocks encourages the designers to utilize one or more desired design strategies or techniques, decreasing the variability in the resulting software model. The functional blocks within the restricted set may be selected based on the requirements identified during requirements stage 202. In addition, the restricted set of functional blocks may comprise functional blocks that provide high-level functions known to be useful for the industry or technology associated with the target product or system. In one embodiment at least a portion of the functional blocks in the restricted group are chosen from functional blocks available in one or more libraries provided by the Simulink® software tool.
Returning to
Custom guidelines review 218 is also associated with development stage 204. This process 218 may be implemented by a custom guidelines review module 154 (
In addition, software model complexity estimation 220 is associated with development stage 204. This process 220 may be implemented by a software complexity estimation module 155 (
Source code generation 222 is the final process associated with development stage 204. This process 222 may be implemented by a source code generation module 156 (
Model/code coverage 224 is associated with testing stage 206. This process 224 may be implemented by a model/code coverage module 157 (
Source code review 226 is also associated with testing stage 206. This process 226 may be implemented by a source code review module 158 (
Requirements testing 228 is the final process of testing stage 206. This process 228 may be implemented by a requirements testing module 159 (
User interface 400 manages the MBD lifecycle via a plurality of selectable menu items and controls. As depicted, user interface 400 includes a file menu item 402, a data handler menu item 404, a ports menu item 406, a test points menu item 408, and a block layout menu item 402. In one embodiment file menu item 402 enables the user to identify the location (e.g., in memory 106 of
The data handler menu item 404 causes processor 112 (
In addition, user interface 400 includes a requirements tracing control 410, a guidelines control 411, a custom guidelines control 412, a model estimate control 413, a code generation control 414, a code/model coverage control 415, a source code review control 416, and a requirements testing control 417. Each of these controls 410-417 corresponds to a process associated with MBD lifecycle 200. In the depicted embodiment controls, controls 410-417 comprise selectable buttons. However, it will be understood by one who is skilled in the art that controls 410-417 may comprise any selectable software control.
Requirements trace control 410 causes processor 112 (
In addition, user interface 400 may also include additional fields for providing information that is useful during MBD lifecycle 200. For example, user interface 400 may provide a configuration files field 420 for identifying the location where the configuration settings for the software model are stored (e.g., in memory 106 of
User interface 400 requires the user to perform requirements identification 210 and software model development 214 before performing the other processes associated with MBD lifecycle 200. For example, in one embodiment controls 410-417 are disabled until the user selects file menu item 402 to designate the stored location of a project file corresponding to a desired set of requirement records and a software model. It should be noted that other methods of requiring the user to perform requirements identification 210 and software model development 214 before performing the other processes may also be utilized. For example, as described above user interface 400 may be integrated with a software system, such as the Simulink® software tool, that provides a development environment that allows the user to launch user interface 400 only after processes 210 and 214 are performed.
After requirements identification 210 and software model development 214 have been performed, user interface 400 allows the user to perform additional processes. In one embodiment, user interface 400 encourages the user to perform requirements tracing 212, guidelines review 216, custom guidelines review 218, and software model complexity estimation 220 in a preferred order. For example, user interface 400 may enable the requirements tracing control 410, guidelines control 411, custom guidelines control 412, and model estimate control 413 after requirements identification 210 and software model development 214 have been performed. As depicted, controls 410-413 are positioned in a preferred order (e.g., from top to bottom). This arrangement encourages the user to perform the processes that correspond to controls 410-413 in the same preferred order (e.g., requirements tracing 212 first, guidelines review 216 second, custom guidelines review 218 third, and software model complexity estimation 220 fourth). It should be noted that other arrangements and configurations of controls 410-413 controls may also be utilized to encourage the user to perform processes 212, 216, 218 and 220 in the preferred order.
Alternatively, user interface 400 may require the user select controls 410-413 in a required order. For example, user interface 400 may enable only control 410, requiring the user to perform requirements tracing 212 before performing processes 216, 218, or 220. After the user completes requirements tracing 212, user interface could then enable control 411, requiring the user to perform guidelines review 216 before performing processes 218 or 220. This process would continue until each of processes 212, 216, 218, and 220 are performed in the required order.
After the user performs requirements tracing 212, guidelines review 216, custom guidelines review 218, and model complexity estimation 224 (e.g., by selecting controls 410-413), user interface 400 allows the user to perform source code generation 222. To accomplish this, user interface 400 enables code generation control 414. It should be noted that processes 212, 216, 218, and 220 each encourage the designers of the target product or system to utilize consistent design strategies and techniques during the development process. Thus, by requiring the user to implement these processes before generating source code for a software model, user interface 400 enhances the ability of process and quality engineers to maintain a consistent level of quality control during the development process.
After source code generation 222 is performed, user interface 400 enables the user to perform model/code coverage 224, source code review 226, and/or requirements testing 228. To accomplish this, user interface 400 enables model/code coverage control 415, source code review control 416, and/or requirements testing control 417. In one embodiment user interface 400 enables all three controls 415-417. As depicted, controls 415-417 are positioned in a preferred order (e.g., from top to bottom). This arrangement encourages the user to perform the corresponding processes in the same preferred order (e.g., model/code coverage 224 first, source code review 226 second, and requirements testing 228 third).
While at least one exemplary embodiment has been presented in the foregoing detailed description of the invention, it should be appreciated that a vast number of variations exist. It should also be appreciated that the exemplary embodiment or exemplary embodiments are only examples, and are not intended to limit the scope, applicability, or configuration of the invention in any way. Rather, the foregoing detailed description will provide those skilled in the art with a convenient road map for implementing an exemplary embodiment of the invention. It being understood that various changes may be made in the function and arrangement of elements described in an exemplary embodiment without departing from the scope of the invention as set forth in the appended claims.